/** @file gsGaussRule.hpp

    @brief Provides implementation of the Gauss-Legendre quadrature rule

    This file is part of the G+Smo library.

    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/.

    Author(s): A. Mantzaflaris
*/

#pragma once

#include <gsCore/gsBasis.h>
#include <gsIO/gsOptionList.h>

namespace gismo
{

template<class T> void
gsGaussRule<T>::init(const gsBasis<T> & basis, const T quA, const index_t quB, short_t fixDir)
//const unsigned digits)
{
    const short_t d  = basis.dim();
    GISMO_ASSERT( fixDir < d && fixDir>-2, "Invalid input fixDir = "<<fixDir);

    std::vector<gsVector<T> > nodes(d);
    std::vector<gsVector<T> > weights(d);
    if (-1==fixDir)
        fixDir = d;
    else
    {
        nodes  [fixDir].setZero(1); // numNodes == 1
        weights[fixDir].setConstant(1, 2.0);
    }

    // Note: skipping accuracy and lookup tests here (commented)

    //if (digits <= 30 )
    //{
    short_t i;
    for(i=0; i!=fixDir; ++i )
    {
        //note: +0.5 for rounding
        const index_t numNodes = cast<T,index_t>(quA * basis.degree(i) + quB + 0.5);
        //const bool found = 
        lookupReference(numNodes, nodes[i], weights[i]);
        //if (!found)
        //    computeReference(numNodes, nodes[i], weights[i], digits);
    }
    ++i;// skip fixed direction
    for(; i<d; ++i )
    {
        const index_t numNodes = cast<T,index_t>(quA * basis.degree(i) + quB + 0.5);
        lookupReference(numNodes, nodes[i], weights[i]);
    }

    //}
    //else
    //{
    //    for( short_t i=0; i<d; ++i )
    //    {
    //        const index_t numNodes = quA * basis.degree(i) + quB;
    //        computeReference(numNodes, nodes[i], weights[i], digits);
    //    }
    //}
    
    this->computeTensorProductRule(nodes, weights);
}

template<class T>
gsGaussRule<T>::gsGaussRule(const gsBasis<T> & basis, 
                            const T quA, const index_t quB,
                            const short_t fixDir)
//const unsigned digits)
{
    init(basis, quA, quB, fixDir);
}

template<class T>
gsGaussRule<T>::gsGaussRule(const gsBasis<T> & basis, 
                            const gsOptionList & options,
                            const short_t fixDir)
//const unsigned digits)
{
    const T       quA = options.getReal("quA");
    const index_t quB = options.getInt ("quB");
    init(basis, quA, quB, fixDir);
}


template<class T> void
gsGaussRule<T>::setNodes( gsVector<index_t> const & numNodes, 
                          unsigned digits)
{
    const index_t d = numNodes.rows();

    // Get base rule nodes and weights
    std::vector<gsVector<T> > nodes(d);
    std::vector<gsVector<T> > weights(d);

    if (digits == 0)
    {
        for (index_t i = 0; i < d; ++i)
        {
            if (!lookupReference(numNodes[i], nodes[i], weights[i]))
                computeReference(numNodes[i], nodes[i], weights[i], REAL_DIG);
        }
    }
    else
    {
        for (index_t i = 0; i < d; ++i)
            computeReference(numNodes[i], nodes[i], weights[i], digits);
    }

    this->computeTensorProductRule(nodes, weights);
}

template<class T> void
gsGaussRule<T>::computeReference(index_t n,       // Number of points
                                 gsVector<T> & x, // Quadrature points
                                 gsVector<T> & w, // Quadrature weights
                                 unsigned digits) // Number of exact decimal digits
{
    // Allocate space for points and weights.
    x.resize(n);
    w.resize(n);

    const unsigned max_its = digits;
    const T tolerance = math::pow( T(0.1), static_cast<int>(digits) );
    
    // Find only half the roots because of symmetry
    const unsigned m = n / 2 ;
    
    // Three recurrence relation values and one derivative value.
    T   pn(0.0),  // P_{n}
        pnm1(0.0),// P_{n-1}
        pnm2(0.0),// P_{n-2}
        dpn(0.0); // P'_{n}

    // If n is odd, the rule always contains the point x==0.
    if ( n%2 )
    {
        x[m] = T(0.0);
        pn=1.0; pnm1=0.0;
        // Compute P'_n(0)
        for (index_t j=0; j<n-1; ++j)
        {
            pnm2 = pnm1;
            pnm1 = pn;
            pn   = -j*pnm2/static_cast<T>(j+1);
        }
        dpn  = n*pn;
        w[m] = T(2.0) / ( dpn*dpn );
    }
    
    for (unsigned i=0; i<m; ++i)
    {
        // Remarkably, this simple relation provides a very
        // good initial guess for x_i.  See, for example,
        // F. G. Lether and P. R. Wenston
        // Journal of Computational and Applied Mathematics  
        // Minimax approximations to the zeros of Pn(x) and
        // Gauss-Legendre quadrature, Volume 59,
        // Issue 2  (May 1995), p. 245-252, 1995 
        x[i] = math::cos(EIGEN_PI*(i+0.75)/(n+0.5));
        
        // Newton loop iteration counter
        unsigned n_its = 0;
        
        // Begin Newton iterations
        do
        {
            // Initialize recurrence relation
            pn=1.0; pnm1=0.0;
            
            // Use recurrence relation to compute P_n(x[i])
            for (index_t j=0; j<n; ++j)
            {
                pnm2 = pnm1; 
                pnm1 = pn;            
                pn   = ((2.0*j+1.0)*x[i]*pnm1 - j*pnm2)/static_cast<T>(j+1);
            }
            
            // A recurrence relation also gives the derivative.
            dpn=n*(x[i]*pn-pnm1)/(x[i]*x[i]-1.0);
            
            // Compute Newton update
            x[i] -= pn/dpn;
            
            // Increment iteration counter
            n_its++;            
        }
        while ( (math::abs(pn) > tolerance) && (n_its < max_its) );
        
        // if (n_its>=max_its)
        //     gsWarn << "Max ("<<n_its<<") Newton iterations reached, error="
        //            <<math::abs(pn)<<" for node "<<i<<"(tolerance="<<tolerance<<").\n";
        //     gsDebug << "Newton converged in " << n_its << " iterations, ";
        //     gsDebug << "with tolerance=" << math::abs(pn) << std::endl;
        
        // Set x[i] and its mirror image.  We set these in increasing order.
        x[n-1-i] =  x[i];
        x[i]     = -x[i];

        // Compute the weight w[i], its mirror is the same value
        w[i]     =
            w[n-1-i] = T(2.0) / ( (1.0-x[i]*x[i])*dpn*dpn );
    } // end for

    // gsDebug << "Sum of weights=" << w.sum() << std::endl;
}


template<class T> bool
gsGaussRule<T>::lookupReference(index_t n,       // Number of points
                                gsVector<T> & x, // Quadrature points
                                gsVector<T> & w) // Quadrature weights
{
    x.resize(n);
    w.resize(n);

    switch (n) 
    {
    case 1 :
    {
        x << 0.000000000000000000000000000000;

        w << 2.000000000000000000000000000000;
        return true;
    }
    case 2 :
    {
        x << -0.577350269189625764509148780502, 0.577350269189625764509148780502;
        
        w << 1.000000000000000000000000000000, 1.000000000000000000000000000000;
        return true;
    }
    case 3 :
    {
        x << -0.774596669241483377035853079956, 0.000000000000000000000000000000, 0.774596669241483377035853079956;

        w << 0.555555555555555555555555555556, 0.888888888888888888888888888889, 0.555555555555555555555555555556;
        return true;
    }
    case 4 :
    {
        x << -0.861136311594052575223946488893, -0.339981043584856264802665759103, 0.339981043584856264802665759103, 0.861136311594052575223946488893;

        w << 0.347854845137453857373063949222, 0.652145154862546142626936050778, 0.652145154862546142626936050778, 0.347854845137453857373063949222;
        return true;
    }
    case 5 :
    {
        x << -0.906179845938663992797626878299, -0.538469310105683091036314420700, 0.000000000000000000000000000000, 0.538469310105683091036314420700, 0.906179845938663992797626878299;

        w << 0.236926885056189087514264040720, 0.478628670499366468041291514836, 0.568888888888888888888888888889, 0.478628670499366468041291514836, 0.236926885056189087514264040720;
        return true;
    }
    case 6 :
    {
        x << -0.932469514203152027812301554494, -0.661209386466264513661399595020, -0.238619186083196908630501721681, 0.238619186083196908630501721681, 0.661209386466264513661399595020, 0.932469514203152027812301554494;

        w << 0.171324492379170345040296142173, 0.360761573048138607569833513838, 0.467913934572691047389870343990, 0.467913934572691047389870343990, 0.360761573048138607569833513838, 0.171324492379170345040296142173;
        return true;
    }
    case 7 :
    {
        x << -0.949107912342758524526189684048, -0.741531185599394439863864773281, -0.405845151377397166906606412077, 0.000000000000000000000000000000, 0.405845151377397166906606412077, 0.741531185599394439863864773281, 0.949107912342758524526189684048;

        w << 0.129484966168869693270611432679, 0.279705391489276667901467771424, 0.381830050505118944950369775489, 0.417959183673469387755102040816, 0.381830050505118944950369775489, 0.279705391489276667901467771424, 0.129484966168869693270611432679;
        return true;
    }
    case 8 :
    {
        x << -0.960289856497536231683560868569, -0.796666477413626739591553936476, -0.525532409916328985817739049189, -0.183434642495649804939476142360, 0.183434642495649804939476142360, 0.525532409916328985817739049189, 0.796666477413626739591553936476, 0.960289856497536231683560868569;

        w << 0.101228536290376259152531354310, 0.222381034453374470544355994426, 0.313706645877887287337962201987, 0.362683783378361982965150449277, 0.362683783378361982965150449277, 0.313706645877887287337962201987, 0.222381034453374470544355994426, 0.101228536290376259152531354310;
        return true;
    }

    }

    switch (n)
    {
    case 9 :
    {
        x << -0.968160239507626089835576203, -0.836031107326635794299429788, -0.613371432700590397308702039, -0.324253423403808929038538015, 0.000000000000000000000000000, 0.324253423403808929038538015, 0.613371432700590397308702039, 0.836031107326635794299429788, 0.968160239507626089835576203;

        w << 0.081274388361574411971892158111, 0.18064816069485740405847203124, 0.26061069640293546231874286942, 0.31234707704000284006863040658, 0.33023935500125976316452506929, 0.31234707704000284006863040658, 0.26061069640293546231874286942, 0.18064816069485740405847203124, 0.081274388361574411971892158111;
        return true;
    }
    case 10 :
    {
        x << -0.973906528517171720077964012, -0.865063366688984510732096688, -0.679409568299024406234327365, -0.433395394129247190799265943, -0.148874338981631210884826001, 0.148874338981631210884826001, 0.433395394129247190799265943, 0.679409568299024406234327365, 0.865063366688984510732096688, 0.973906528517171720077964012;

        w << 0.066671344308688137593568809893, 0.14945134915058059314577633966, 0.21908636251598204399553493423, 0.26926671930999635509122692157, 0.29552422471475287017389299465, 0.29552422471475287017389299465, 0.26926671930999635509122692157, 0.21908636251598204399553493423, 0.14945134915058059314577633966, 0.066671344308688137593568809893;
        return true;
    }
    case 11 :
    {
        x << -0.978228658146056992803938001, -0.887062599768095299075157769, -0.730152005574049324093416252, -0.519096129206811815925725669, -0.269543155952344972331531985, 0.000000000000000000000000000, 0.269543155952344972331531985, 0.519096129206811815925725669, 0.730152005574049324093416252, 0.887062599768095299075157769, 0.978228658146056992803938001;

        w << 0.055668567116173666482753720443, 0.12558036946490462463469429922, 0.18629021092773425142609764143, 0.23319376459199047991852370484, 0.26280454451024666218068886989, 0.27292508677790063071448352834, 0.26280454451024666218068886989, 0.23319376459199047991852370484, 0.18629021092773425142609764143, 0.12558036946490462463469429922, 0.055668567116173666482753720443;
        return true;
    }
    case 12 :
    {
        x << -0.981560634246719250690549090, -0.904117256370474856678465866, -0.769902674194304687036893833, -0.587317954286617447296702419, -0.367831498998180193752691537, -0.125233408511468915472441369, 0.125233408511468915472441369, 0.367831498998180193752691537, 0.587317954286617447296702419, 0.769902674194304687036893833, 0.904117256370474856678465866, 0.981560634246719250690549090;

        w << 0.047175336386511827194615961485, 0.10693932599531843096025471819, 0.16007832854334622633465252954, 0.20316742672306592174906445581, 0.23349253653835480876084989892, 0.24914704581340278500056243604, 0.24914704581340278500056243604, 0.23349253653835480876084989892, 0.20316742672306592174906445581, 0.16007832854334622633465252954, 0.10693932599531843096025471819, 0.047175336386511827194615961485;
        return true;
    }
    case 13 :
    {
        x << -0.984183054718588149472829449, -0.917598399222977965206547837, -0.801578090733309912794206490, -0.642349339440340220643984607, -0.448492751036446852877912852, -0.230458315955134794065528121, 0.000000000000000000000000000, 0.230458315955134794065528121, 0.448492751036446852877912852, 0.642349339440340220643984607, 0.80157809073330991279420649, 0.91759839922297796520654784, 0.98418305471858814947282945;

        w << 0.040484004765315879520021592201, 0.092121499837728447914421775954, 0.13887351021978723846360177687, 0.17814598076194573828004669200, 0.20781604753688850231252321931, 0.22628318026289723841209018604, 0.23255155323087391019458951527, 0.22628318026289723841209018604, 0.20781604753688850231252321931, 0.17814598076194573828004669200, 0.13887351021978723846360177687, 0.092121499837728447914421775954, 0.040484004765315879520021592201;
        return true;
    }
    case 14 :
    {
        x << -0.986283808696812338841597267, -0.928434883663573517336391139, -0.827201315069764993189794743, -0.687292904811685470148019803, -0.515248636358154091965290719, -0.319112368927889760435671824, -0.108054948707343662066244650, 0.108054948707343662066244650, 0.31911236892788976043567182, 0.51524863635815409196529072, 0.68729290481168547014801980, 0.82720131506976499318979474, 0.92843488366357351733639114, 0.98628380869681233884159727;

        w << 0.035119460331751863031832876138, 0.08015808715976020980563327706, 0.12151857068790318468941480907, 0.15720316715819353456960193862, 0.18553839747793781374171659013, 0.20519846372129560396592406566, 0.21526385346315779019587644332, 0.21526385346315779019587644332, 0.20519846372129560396592406566, 0.18553839747793781374171659013, 0.15720316715819353456960193862, 0.12151857068790318468941480907, 0.08015808715976020980563327706, 0.035119460331751863031832876138;
        return true;
    }
    case 15 :
    {
        x << -0.987992518020485428489565719, -0.937273392400705904307758948, -0.848206583410427216200648321, -0.724417731360170047416186055, -0.570972172608538847537226737, -0.394151347077563369897207371, -0.201194093997434522300628303, 0.00000000000000000000000000, 0.20119409399743452230062830, 0.39415134707756336989720737, 0.57097217260853884753722674, 0.72441773136017004741618605, 0.84820658341042721620064832, 0.93727339240070590430775895, 0.98799251802048542848956572;

        w << 0.030753241996117268354628393577, 0.070366047488108124709267416451, 0.107159220467171935011869546686, 0.13957067792615431444780479451, 0.16626920581699393355320086048, 0.18616100001556221102680056187, 0.19843148532711157645611832644, 0.20257824192556127288062019997, 0.19843148532711157645611832644, 0.18616100001556221102680056187, 0.16626920581699393355320086048, 0.13957067792615431444780479451, 0.107159220467171935011869546686, 0.070366047488108124709267416451, 0.030753241996117268354628393577;
        return true;
    }
    case 16 :
    {
        x << -0.989400934991649932596154173, -0.944575023073232576077988416, -0.865631202387831743880467898, -0.755404408355003033895101195, -0.617876244402643748446671764, -0.458016777657227386342419443, -0.281603550779258913230460501, -0.09501250983763744018531934, 0.09501250983763744018531934, 0.28160355077925891323046050, 0.45801677765722738634241944, 0.61787624440264374844667176, 0.75540440835500303389510119, 0.86563120238783174388046790, 0.94457502307323257607798842, 0.98940093499164993259615417;

        w << 0.027152459411754094851780572456, 0.062253523938647892862843836994, 0.09515851168249278480992510760, 0.12462897125553387205247628219, 0.14959598881657673208150173055, 0.16915651939500253818931207903, 0.18260341504492358886676366797, 0.18945061045506849628539672321, 0.18945061045506849628539672321, 0.18260341504492358886676366797, 0.16915651939500253818931207903, 0.14959598881657673208150173055, 0.12462897125553387205247628219, 0.09515851168249278480992510760, 0.062253523938647892862843836994, 0.027152459411754094851780572456;
        return true;
    }
    case 17 :
    {
        x << -0.990575475314417335675434020, -0.950675521768767761222716958, -0.880239153726985902122955694, -0.781514003896801406925230056, -0.657671159216690765850302217, -0.512690537086476967886246569, -0.35123176345387631529718552, -0.17848418149584785585067749, 0.00000000000000000000000000, 0.17848418149584785585067749, 0.35123176345387631529718552, 0.51269053708647696788624657, 0.65767115921669076585030222, 0.78151400389680140692523006, 0.88023915372698590212295569, 0.95067552176876776122271696, 0.99057547531441733567543402;

        w << 0.024148302868547931960110026288, 0.055459529373987201129440165359, 0.085036148317179180883535370191, 0.111883847193403971094788385626, 0.13513636846852547328631998170, 0.15404576107681028808143159480, 0.16800410215645004450997066379, 0.17656270536699264632527099011, 0.17944647035620652545826564426, 0.17656270536699264632527099011, 0.16800410215645004450997066379, 0.15404576107681028808143159480, 0.13513636846852547328631998170, 0.111883847193403971094788385626, 0.085036148317179180883535370191, 0.055459529373987201129440165359, 0.024148302868547931960110026288;
        return true;
    }
    case 18 :
    {
        x << -0.991565168420930946730016005, -0.955823949571397755181195893, -0.892602466497555739206060591, -0.803704958972523115682417455, -0.691687043060353207874891081, -0.55977083107394753460787155, -0.41175116146284264603593179, -0.25188622569150550958897285, -0.08477501304173530124226185, 0.08477501304173530124226185, 0.25188622569150550958897285, 0.41175116146284264603593179, 0.55977083107394753460787155, 0.69168704306035320787489108, 0.80370495897252311568241746, 0.89260246649755573920606059, 0.95582394957139775518119589, 0.99156516842093094673001600;

        w << 0.021616013526483310313342710266, 0.049714548894969796453334946203, 0.07642573025488905652912967762, 0.10094204410628716556281398492, 0.12255520671147846018451912680, 0.14064291467065065120473130375, 0.15468467512626524492541800384, 0.16427648374583272298605377647, 0.16914238296314359184065647013, 0.16914238296314359184065647013, 0.16427648374583272298605377647, 0.15468467512626524492541800384, 0.14064291467065065120473130375, 0.12255520671147846018451912680, 0.10094204410628716556281398492, 0.07642573025488905652912967762, 0.049714548894969796453334946203, 0.021616013526483310313342710266;
        return true;
    }
    case 19 :
    {
        x << -0.992406843843584403189017670, -0.960208152134830030852778841, -0.903155903614817901642660929, -0.822714656537142824978922487, -0.72096617733522937861709586, -0.60054530466168102346963816, -0.46457074137596094571726715, -0.31656409996362983199011733, -0.16035864564022537586809612, 0.00000000000000000000000000, 0.16035864564022537586809612, 0.31656409996362983199011733, 0.46457074137596094571726715, 0.60054530466168102346963816, 0.72096617733522937861709586, 0.82271465653714282497892249, 0.90315590361481790164266093, 0.96020815213483003085277884, 0.99240684384358440318901767;

        w << 0.019461788229726477036312041464, 0.044814226765699600332838157402, 0.069044542737641226580708258006, 0.091490021622449999464462094124, 0.111566645547333994716023901682, 0.12875396253933622767551578486, 0.14260670217360661177574610944, 0.15276604206585966677885540090, 0.15896884339395434764995643946, 0.16105444984878369597916362532, 0.15896884339395434764995643946, 0.15276604206585966677885540090, 0.14260670217360661177574610944, 0.12875396253933622767551578486, 0.111566645547333994716023901682, 0.091490021622449999464462094124, 0.069044542737641226580708258006, 0.044814226765699600332838157402, 0.019461788229726477036312041464;
        return true;
    }
    case 20 :
    {
        x << -0.993128599185094924786122388, -0.963971927277913791267666131, -0.912234428251325905867752441, -0.83911697182221882339452906, -0.74633190646015079261430507, -0.63605368072651502545283670, -0.51086700195082709800436405, -0.37370608871541956067254818, -0.22778585114164507808049620, -0.07652652113349733375464041, 0.07652652113349733375464041, 0.22778585114164507808049620, 0.37370608871541956067254818, 0.51086700195082709800436405, 0.63605368072651502545283670, 0.74633190646015079261430507, 0.83911697182221882339452906, 0.91223442825132590586775244, 0.96397192727791379126766613, 0.99312859918509492478612239;

        w << 0.017614007139152118311861962352, 0.040601429800386941331039952275, 0.062672048334109063569506535187, 0.08327674157670474872475814322, 0.10193011981724043503675013548, 0.11819453196151841731237737771, 0.13168863844917662689849449975, 0.14209610931838205132929832507, 0.14917298647260374678782873700, 0.15275338713072585069808433195, 0.15275338713072585069808433195, 0.14917298647260374678782873700, 0.14209610931838205132929832507, 0.13168863844917662689849449975, 0.11819453196151841731237737771, 0.10193011981724043503675013548, 0.08327674157670474872475814322, 0.062672048334109063569506535187, 0.040601429800386941331039952275, 0.017614007139152118311861962352;
        return true;
    }
    case 21 :
    {
        x << -0.99375217062038950026024204, -0.96722683856630629431662221, -0.92009933415040082879018713, -0.85336336458331728364725064, -0.76843996347567790861587785, -0.66713880419741231930596667, -0.55161883588721980705901880, -0.42434212020743878357366889, -0.28802131680240109660079252, -0.14556185416089509093703098, 0.00000000000000000000000000, 0.14556185416089509093703098, 0.28802131680240109660079252, 0.42434212020743878357366889, 0.55161883588721980705901880, 0.66713880419741231930596667, 0.76843996347567790861587785, 0.85336336458331728364725064, 0.92009933415040082879018713, +0.96722683856630629431662221, 0.99375217062038950026024204;

        w << 0.016017228257774333324224616858, 0.036953789770852493799950668299, 0.057134425426857208283635826472, 0.076100113628379302017051653300, 0.093444423456033861553289741114, 0.108797299167148377663474578070, 0.12183141605372853419536717713, 0.13226893863333746178105257450, 0.13988739479107315472213342387, 0.14452440398997005906382716655, 0.14608113364969042719198514768, 0.14452440398997005906382716655, 0.13988739479107315472213342387, 0.13226893863333746178105257450, 0.12183141605372853419536717713, 0.108797299167148377663474578070, 0.093444423456033861553289741114, 0.076100113628379302017051653300, 0.057134425426857208283635826472, 0.036953789770852493799950668299, 0.016017228257774333324224616858;
        return true;
    }
#ifndef _MSC_VER
// /*
    case 22 :
    {
        x << -0.99429458548239929207303142, -0.97006049783542872712395099, -0.92695677218717400052069294, -0.86581257772030013653642564, -0.78781680597920816200427796, -0.69448726318668278005068984, -0.58764040350691159295887693, -0.46935583798675702640633071, -0.34193582089208422515814742, -0.20786042668822128547884653, -0.06973927331972222121384180, 0.06973927331972222121384180, 0.20786042668822128547884653, 0.34193582089208422515814742, 0.46935583798675702640633071, 0.58764040350691159295887693, 0.69448726318668278005068984, 0.78781680597920816200427796, 0.86581257772030013653642564, 0.92695677218717400052069294, 0.97006049783542872712395099, 0.99429458548239929207303142;
 
        w << 0.014627995298272200684991098047, 0.033774901584814154793302246866, 0.052293335152683285940312051273, 0.06979646842452048809496141893, 0.08594160621706772741444368137, 0.10041414444288096493207883783, 0.11293229608053921839340060742, 0.12325237681051242428556098615, 0.13117350478706237073296499253, 0.13654149834601517135257383123, 0.13925187285563199337541024834, 0.13925187285563199337541024834, 0.13654149834601517135257383123, 0.13117350478706237073296499253, 0.12325237681051242428556098615, 0.11293229608053921839340060742, 0.10041414444288096493207883783, 0.08594160621706772741444368137, 0.06979646842452048809496141893, 0.052293335152683285940312051273, 0.033774901584814154793302246866, 0.014627995298272200684991098047;
        return true;
    }
    case 23 :
    {
        x << -0.99476933499755212352392572, -0.97254247121811523195602408, -0.93297108682601610234919699, -0.87675235827044166737815689, -0.80488840161883989215111841, -0.71866136313195019446162448, -0.61960987576364615638509731, -0.50950147784600754968979305, -0.39030103803029083142148887, -0.26413568097034493053386954, -0.13325682429846611093174268, 0.00000000000000000000000000, 0.13325682429846611093174268, 0.26413568097034493053386954, 0.39030103803029083142148887, 0.50950147784600754968979305, 0.61960987576364615638509731, 0.71866136313195019446162448, 0.80488840161883989215111841, 0.87675235827044166737815689, 0.93297108682601610234919699, 0.97254247121811523195602408, 0.99476933499755212352392572;

        w << 0.013411859487141772081309493459, 0.030988005856979444310694219642, 0.048037671731084668571641071632, 0.064232421408525852127169615159, 0.079281411776718954922892524742, 0.092915766060035147477018617370, 0.104892091464541410074086185015, 0.11499664022241136494164351293, 0.12304908430672953046757840067, 0.12890572218808214997859533940, 0.13246203940469661737164246470, 0.13365457218610617535145711055, 0.13246203940469661737164246470, 0.12890572218808214997859533940, 0.12304908430672953046757840067, 0.11499664022241136494164351293, 0.104892091464541410074086185015, 0.092915766060035147477018617370, 0.079281411776718954922892524742, 0.064232421408525852127169615159, 0.048037671731084668571641071632, 0.030988005856979444310694219642, 0.013411859487141772081309493459;
        return true;
    }
    case 24 :
    {
        x << -0.99518721999702136017999741, -0.97472855597130949819839199, -0.93827455200273275852364900, -0.88641552700440103421315434, -0.82000198597390292195394987, -0.74012419157855436424382810, -0.64809365193697556925249579, -0.54542147138883953565837562, -0.43379350762604513848708423, -0.31504267969616337438679329, -0.19111886747361630915863982, -0.06405689286260562608504308, 0.06405689286260562608504308, 0.19111886747361630915863982, 0.31504267969616337438679329, 0.43379350762604513848708423, 0.54542147138883953565837562, 0.64809365193697556925249579, 0.74012419157855436424382810, 0.82000198597390292195394987, 0.88641552700440103421315434, 0.93827455200273275852364900, 0.97472855597130949819839199, 0.99518721999702136017999741;

        w << 0.012341229799987199546805667070, 0.028531388628933663181307815952, 0.044277438817419806168602748211, 0.059298584915436780746367758500, 0.07334648141108030573403361525, 0.08619016153195327591718520298, 0.09761865210411388826988066446, 0.10744427011596563478257734245, 0.11550566805372560135334448391, 0.12167047292780339120446315348, 0.12583745634682829612137538251, 0.12793819534675215697405616522, 0.12793819534675215697405616522, 0.12583745634682829612137538251, 0.12167047292780339120446315348, 0.11550566805372560135334448391, 0.10744427011596563478257734245, 0.09761865210411388826988066446, 0.08619016153195327591718520298, 0.07334648141108030573403361525, 0.059298584915436780746367758500, 0.044277438817419806168602748211, 0.028531388628933663181307815952, 0.012341229799987199546805667070;
        return true;
    }
    case 25 :
    {
        x << -0.99555696979049809790878495, -0.97666392145951751149831539, -0.94297457122897433941401117, -0.89499199787827536885104201, -0.83344262876083400142102111, -0.75925926303735763057728287, -0.67356636847346836448512063, -0.57766293024122296772368984, -0.47300273144571496052218212, -0.36117230580938783773582173, -0.24386688372098843204519036, -0.12286469261071039638735982, 0.00000000000000000000000000, 0.12286469261071039638735982, 0.24386688372098843204519036, 0.36117230580938783773582173, 0.47300273144571496052218212, 0.57766293024122296772368984, 0.67356636847346836448512063, 0.75925926303735763057728287, 0.83344262876083400142102111, 0.89499199787827536885104201, 0.94297457122897433941401117, 0.97666392145951751149831539, 0.99555696979049809790878495;

        w << 0.0113937985010262879479029641132, 0.026354986615032137261901815295, 0.040939156701306312655623487712, 0.054904695975835191925936891541, 0.068038333812356917207187185657, 0.080140700335001018013234959669, 0.091028261982963649811497220703, 0.100535949067050644202206890393, 0.108519624474263653116093957050, 0.11485825914571164833932554587, 0.11945576353578477222817812651, 0.12224244299031004168895951895, 0.12317605372671545120390287308, 0.12224244299031004168895951895, 0.11945576353578477222817812651, 0.11485825914571164833932554587, 0.108519624474263653116093957050, 0.100535949067050644202206890393, 0.091028261982963649811497220703, 0.080140700335001018013234959669, 0.068038333812356917207187185657, 0.054904695975835191925936891541, 0.040939156701306312655623487712, 0.026354986615032137261901815295, 0.0113937985010262879479029641132;
        return true;
    }
    case 26 :
    {
        x << -0.99588570114561692900321696, -0.97838544595647099110058035, -0.94715906666171425013591528, -0.90263786198430707421766560, -0.84544594278849801879750706, -0.77638594882067885619296725, -0.69642726041995726486381391, -0.60669229301761806323197875, -0.50844071482450571769570306, -0.40305175512348630648107738, -0.29200483948595689514283538, -0.17685882035689018396905775, -0.05923009342931320709371858, 0.05923009342931320709371858, 0.17685882035689018396905775, 0.29200483948595689514283538, 0.40305175512348630648107738, 0.50844071482450571769570306, 0.60669229301761806323197875, 0.69642726041995726486381391, 0.77638594882067885619296725, 0.84544594278849801879750706, 0.90263786198430707421766560, 0.94715906666171425013591528, 0.97838544595647099110058035, 0.99588570114561692900321696;

        w << 0.010551372617343007155651187685, 0.024417851092631908789615827520, 0.037962383294362763950303141249, 0.050975825297147811998319900724, 0.063274046329574835539453689907, 0.07468414976565974588707579610, 0.08504589431348523921044776508, 0.09421380035591414846366488307, 0.10205916109442542323841407025, 0.10847184052857659065657942673, 0.11336181654631966654944071844, 0.11666044348529658204466250754, 0.11832141527926227651637108570, 0.11832141527926227651637108570, 0.11666044348529658204466250754, 0.11336181654631966654944071844, 0.10847184052857659065657942673, 0.10205916109442542323841407025, 0.09421380035591414846366488307, 0.08504589431348523921044776508, 0.07468414976565974588707579610, 0.063274046329574835539453689907, 0.050975825297147811998319900724, 0.037962383294362763950303141249, 0.024417851092631908789615827520, 0.010551372617343007155651187685;
        return true;
    }
    case 27 :
    {
        x << -0.99617926288898856693888721, -0.97992347596150122285587336, -0.95090055781470500685190803, -0.90948232067749110430064502, -0.85620790801829449030273722, -0.79177163907050822714439734, -0.71701347373942369929481621, -0.63290797194649514092773464, -0.54055156457945689490030094, -0.44114825175002688058597416, -0.33599390363850889973031903, -0.22645936543953685885723911, -0.11397258560952996693289498, 0.00000000000000000000000000, 0.11397258560952996693289498, 0.22645936543953685885723911, 0.33599390363850889973031903, 0.44114825175002688058597416, 0.54055156457945689490030094, 0.63290797194649514092773464, 0.71701347373942369929481621, 0.79177163907050822714439734, 0.85620790801829449030273722, 0.90948232067749110430064502, 0.95090055781470500685190803, 0.97992347596150122285587336, 0.99617926288898856693888721;

        w << 0.0097989960512943602611500550912, 0.022686231596180623196034206447, 0.035297053757419711022578289305, 0.047449412520615062704096710114, 0.058983536859833599110300833720, 0.069748823766245592984322888357, 0.079604867773057771263074959010, 0.088423158543756950194322802854, 0.096088727370028507565652646558, 0.102501637817745798671247711533, 0.107578285788533187212162984427, 0.111252488356845192672163096043, 0.113476346108965148620369948092, 0.11422086737895698904504573690, 0.113476346108965148620369948092, 0.111252488356845192672163096043, 0.107578285788533187212162984427, 0.102501637817745798671247711533, 0.096088727370028507565652646558, 0.088423158543756950194322802854, 0.079604867773057771263074959010, 0.069748823766245592984322888357, 0.058983536859833599110300833720, 0.047449412520615062704096710114, 0.035297053757419711022578289305, 0.022686231596180623196034206447, 0.0097989960512943602611500550912;
        return true;
    }
    case 28 :
    {
        x << -0.99644249757395444995043639, -0.98130316537087275369455995, -0.95425928062893819725410184, -0.91563302639213207386968942, -0.86589252257439504894225457, -0.80564137091717917144788596, -0.73561087801363177202814451, -0.65665109403886496121989818, -0.56972047181140171930800328, -0.47587422495511826103441185, -0.37625151608907871022135721, -0.27206162763517807767682636, -0.16456928213338077128147178, -0.05507928988403427042651653, 0.05507928988403427042651653, 0.16456928213338077128147178, 0.27206162763517807767682636, 0.37625151608907871022135721, 0.47587422495511826103441185, 0.56972047181140171930800328, 0.65665109403886496121989818, 0.73561087801363177202814451, 0.80564137091717917144788596, 0.86589252257439504894225457, 0.91563302639213207386968942, 0.95425928062893819725410184, 0.98130316537087275369455995, 0.99644249757395444995043639;

        w << 0.009124282593094517738816153923, 0.021132112592771259751500380993, 0.032901427782304379977630819171, 0.044272934759004227839587877653, 0.055107345675716745431482918227, 0.06527292396699959579339756678, 0.07464621423456877902393188717, 0.08311341722890121839039649824, 0.09057174439303284094218603134, 0.09693065799792991585048900610, 0.10211296757806076981421663851, 0.10605576592284641791041643700, 0.10871119225829413525357151930, 0.11004701301647519628237626560, 0.11004701301647519628237626560, 0.10871119225829413525357151930, 0.10605576592284641791041643700, 0.10211296757806076981421663851, 0.09693065799792991585048900610, 0.09057174439303284094218603134, 0.08311341722890121839039649824, 0.07464621423456877902393188717, 0.06527292396699959579339756678, 0.055107345675716745431482918227, 0.044272934759004227839587877653, 0.032901427782304379977630819171, 0.021132112592771259751500380993, 0.009124282593094517738816153923;
        return true;
    }
    case 29 :
    {
        x << -0.99667944226059658616319153, -0.98254550526141317487092602, -0.95728559577808772579820804, -0.92118023295305878509375344, -0.87463780492010279041779342, -0.81818548761525244498957221, -0.75246285173447713391261008, -0.67821453760268651515618501, -0.59628179713822782037958621, -0.50759295512422764210262792, -0.41315288817400866389070659, -0.31403163786763993494819592, -0.21135228616600107450637573, -0.10627823013267923017098239, 0.00000000000000000000000000, 0.10627823013267923017098239, 0.21135228616600107450637573, 0.31403163786763993494819592, 0.41315288817400866389070659, 0.50759295512422764210262792, 0.59628179713822782037958621, 0.67821453760268651515618501, 0.75246285173447713391261008, 0.81818548761525244498957221, 0.87463780492010279041779342, 0.92118023295305878509375344, 0.95728559577808772579820804, 0.98254550526141317487092602, 0.99667944226059658616319153;

        w << 0.0085169038787464096542638133022, 0.019732085056122705983859801640, 0.030740492202093622644408525375, 0.041402062518682836104830010114, 0.051594826902497923912594381180, 0.061203090657079138542109848024, 0.070117933255051278569581486949, 0.078238327135763783828144888660, 0.085472257366172527545344849297, 0.091737757139258763347966411077, 0.096963834094408606301900074883, 0.101091273759914966121820546907, 0.104073310077729373913328471285, 0.105876155097320941406591327852, 0.10647938171831424424651112691, 0.105876155097320941406591327852, 0.104073310077729373913328471285, 0.101091273759914966121820546907, 0.096963834094408606301900074883, 0.091737757139258763347966411077, 0.085472257366172527545344849297, 0.078238327135763783828144888660, 0.070117933255051278569581486949, 0.061203090657079138542109848024, 0.051594826902497923912594381180, 0.041402062518682836104830010114, 0.030740492202093622644408525375, 0.019732085056122705983859801640, 0.0085169038787464096542638133022;
            return true;
    }
    case 30 :
    {
        x << -0.99689348407464954027163005, -0.98366812327974720997003258, -0.96002186496830751221687103, -0.92620004742927432587932428, -0.88256053579205268154311646, -0.82956576238276839744289812, -0.76777743210482619491797734, -0.69785049479331579693229239, -0.62052618298924286114047756, -0.53662414814201989926416979, -0.44703376953808917678060990, -0.35270472553087811347103721, -0.25463692616788984643980513, -0.15386991360858354696379467, -0.05147184255531769583302521, 0.05147184255531769583302521, 0.15386991360858354696379467, 0.25463692616788984643980513, 0.35270472553087811347103721, 0.44703376953808917678060990, 0.53662414814201989926416979, 0.62052618298924286114047756, 0.69785049479331579693229239, 0.76777743210482619491797734, 0.82956576238276839744289812, 0.88256053579205268154311646, 0.92620004742927432587932428, 0.96002186496830751221687103, 0.98366812327974720997003258, 0.99689348407464954027163005;

        w << 0.007968192496166605615465883475, 0.018466468311090959142302131912, 0.028784707883323369349719179611, 0.038799192569627049596801936446, 0.048402672830594052902938140423, 0.057493156217619066481721689402, 0.06597422988218049512812851512, 0.07375597473770520626824385002, 0.08075589522942021535469493846, 0.08689978720108297980238753072, 0.09212252223778612871763270709, 0.09636873717464425963946862635, 0.09959342058679526706278028210, 0.10176238974840550459642895217, 0.10285265289355884034128563671, 0.10285265289355884034128563671, 0.10176238974840550459642895217, 0.09959342058679526706278028210, 0.09636873717464425963946862635, 0.09212252223778612871763270709, 0.08689978720108297980238753072, 0.08075589522942021535469493846, 0.07375597473770520626824385002, 0.06597422988218049512812851512, 0.057493156217619066481721689402, 0.048402672830594052902938140423, 0.038799192569627049596801936446, 0.028784707883323369349719179611, 0.018466468311090959142302131912, 0.007968192496166605615465883475;    
        return true;
    }
    case 31 :
    {
        x << -0.99708748181947707405562655, -0.98468590966515248400246517, -0.96250392509294966178905240, -0.93075699789664816495694576, -0.88976002994827104337419201, -0.83992032014626734008690454, -0.78173314841662494040636002, -0.71577678458685328390597087, -0.64270672292426034618441820, -0.56324916140714926272094492, -0.47819378204490248044059404, -0.38838590160823294306135146, -0.29471806998170161661790390, -0.19812119933557062877241300, -0.09955531215234152032517479, 0.00000000000000000000000000, 0.09955531215234152032517479, 0.19812119933557062877241300, 0.29471806998170161661790390, 0.38838590160823294306135146, 0.47819378204490248044059404, 0.56324916140714926272094492, 0.64270672292426034618441820, 0.71577678458685328390597087, 0.78173314841662494040636002, 0.83992032014626734008690454, 0.88976002994827104337419201, 0.93075699789664816495694576, 0.96250392509294966178905240, 0.98468590966515248400246517, 0.99708748181947707405562655;

        w << 0.0074708315792487758586968750322, 0.017318620790310582463157996087, 0.027009019184979421800608708092, 0.036432273912385464024392010468, 0.045493707527201102902315857895, 0.054103082424916853711666259087, 0.062174786561028426910343543687, 0.069628583235410366167756126255, 0.076390386598776616426357674901, 0.082392991761589263903823367432, 0.087576740608477876126198069695, 0.091890113893641478215362871607, 0.095290242912319512807204197488, 0.097743335386328725093474010979, 0.099225011226672307874875514429, 0.09972054479342645142753383373, 0.099225011226672307874875514429, 0.097743335386328725093474010979, 0.095290242912319512807204197488, 0.091890113893641478215362871607, 0.087576740608477876126198069695, 0.082392991761589263903823367432, 0.076390386598776616426357674901, 0.069628583235410366167756126255, 0.062174786561028426910343543687, 0.054103082424916853711666259087, 0.045493707527201102902315857895, 0.036432273912385464024392010468, 0.027009019184979421800608708092, 0.017318620790310582463157996087, 0.0074708315792487758586968750322;
        return true;
    }
    case 32 :
    {
        x << -0.99726386184948156354498113, -0.98561151154526833540017504, -0.96476225558750643077381193, -0.93490607593773968917091913, -0.89632115576605212396530724, -0.84936761373256997013369300, -0.79448379596794240696309730, -0.73218211874028968038742667, -0.66304426693021520097511517, -0.58771575724076232904074548, -0.50689990893222939002374747, -0.42135127613063534536411944, -0.33186860228212764977991681, -0.23928736225213707454460321, -0.14447196158279649348518637, -0.04830766568773831623481257, 0.04830766568773831623481257, 0.14447196158279649348518637, 0.23928736225213707454460321, 0.33186860228212764977991681, 0.42135127613063534536411944, 0.50689990893222939002374747, 0.58771575724076232904074548, 0.66304426693021520097511517, 0.73218211874028968038742667, 0.79448379596794240696309730, 0.84936761373256997013369300, 0.89632115576605212396530724, 0.93490607593773968917091913, 0.96476225558750643077381193, 0.98561151154526833540017504, 0.99726386184948156354498113;

        w << 0.007018610009470096600407063739, 0.016274394730905670605170562206, 0.025392065309262059455752589789, 0.034273862913021433102687732252, 0.042835898022226680656878646606, 0.050998059262376176196163244690, 0.058684093478535547145283637300, 0.06582222277636184683765006371, 0.07234579410884850622539935648, 0.07819389578707030647174091883, 0.08331192422694675522219907460, 0.08765209300440381114277146275, 0.09117387869576388471286857711, 0.09384439908080456563918023767, 0.09563872007927485941908200220, 0.09654008851472780056676483006, 0.09654008851472780056676483006, 0.09563872007927485941908200220, 0.09384439908080456563918023767, 0.09117387869576388471286857711, 0.08765209300440381114277146275, 0.08331192422694675522219907460, 0.07819389578707030647174091883, 0.07234579410884850622539935648, 0.06582222277636184683765006371, 0.058684093478535547145283637300, 0.050998059262376176196163244690, 0.042835898022226680656878646606, 0.034273862913021433102687732252, 0.025392065309262059455752589789, 0.016274394730905670605170562206, 0.007018610009470096600407063739;
        return true;
    }
    case 33 :
    {
        x << -0.99742469424645521726616802, -0.98645572623064248811037570, -0.96682290968999276892837771, -0.93869437261116835035583512, -0.90231676774343358304053133, -0.85800965267650406464306148, -0.80616235627416658979620087, -0.74723049644956215785905512, -0.68173195996974278626821595, -0.61024234583637902730728751, -0.53338990478634764354889426, -0.45185001727245069572599328, -0.36633925774807334107022062, -0.27760909715249702940324807, -0.18643929882799157233579876, -0.09363106585473338567074292, 0.00000000000000000000000000, 0.09363106585473338567074292, 0.18643929882799157233579876, 0.27760909715249702940324807, 0.36633925774807334107022062, 0.45185001727245069572599328, 0.53338990478634764354889426, 0.61024234583637902730728751, 0.68173195996974278626821595, 0.74723049644956215785905512, 0.80616235627416658979620087, 0.85800965267650406464306148, 0.90231676774343358304053133, 0.93869437261116835035583512, 0.96682290968999276892837771, 0.98645572623064248811037570, 0.99742469424645521726616802;

        w << 0.0066062278475873780586492352085, 0.015321701512934676127945768534, 0.023915548101749480350533257529, 0.032300358632328953281561447250, 0.040401541331669591563409790527, 0.048147742818711695670146880138, 0.055470846631663561284944495439, 0.062306482530317480031627725771, 0.068594572818656712805955073015, 0.074279854843954149342472175919, 0.079312364794886738363908384942, 0.083647876067038707613928014518, 0.087248287618844337607281670945, 0.090081958660638577239743705500, 0.092123986643316846213240977717, 0.093356426065596116160999126274, 0.09376844616020999656730454155, 0.093356426065596116160999126274, 0.092123986643316846213240977717, 0.090081958660638577239743705500, 0.087248287618844337607281670945, 0.083647876067038707613928014518, 0.079312364794886738363908384942, 0.074279854843954149342472175919, 0.068594572818656712805955073015, 0.062306482530317480031627725771, 0.055470846631663561284944495439, 0.048147742818711695670146880138, 0.040401541331669591563409790527, 0.032300358632328953281561447250, 0.023915548101749480350533257529, 0.015321701512934676127945768534, 0.0066062278475873780586492352085;
        return true;
    }
    case 63 :
    {
        x << -0.99928298402912378037893614, -0.99622401277797010860219336, -0.99072854689218946681089467, -0.98280881059372723486251141, -0.97248403469757002280196068, -0.95977944975894192707035417, -0.94472613404100980296637532, -0.92736092062184320544703138, -0.90772630277853155803695313, -0.88587032850785342629029846, -0.86184648236412371953961184, -0.83571355431950284347180777, -0.80753549577345676005146599, -0.7773812629903723355633302, -0.7453246483178474178293217, -0.7114440995848458078514315, -0.6758225281149860901311033, -0.6385471058213653850003070, -0.5997090518776252357390089, -0.5594034094862850132676978, -0.5177288132900332481244776, -0.4747872479948043999222123, -0.4306837987951116006620889, -0.3855263942122478924776150, -0.3394255419745844024688344, -0.2924940585862514400361572, -0.2448467932459533627484046, -0.1966003467915066845576275, -0.1478727863578719685698391, -0.0987833564469452795297037, -0.0494521871161596272342338, 0.0000000000000000000000000, 0.0494521871161596272342338, 0.0987833564469452795297037, 0.1478727863578719685698391, 0.1966003467915066845576275, 0.2448467932459533627484046, 0.2924940585862514400361572, 0.3394255419745844024688344, 0.3855263942122478924776150, 0.4306837987951116006620889, 0.4747872479948043999222123, 0.5177288132900332481244776, 0.5594034094862850132676978, 0.5997090518776252357390089, 0.6385471058213653850003070, 0.6758225281149860901311033, 0.7114440995848458078514315, 0.7453246483178474178293217, 0.7773812629903723355633302, 0.8075354957734567600514660, 0.8357135543195028434718078, 0.8618464823641237195396118, 0.8858703285078534262902985, 0.9077263027785315580369531, 0.9273609206218432054470314, 0.9447261340410098029663753, 0.9597794497589419270703542, 0.9724840346975700228019607, 0.9828088105937272348625114, 0.9907285468921894668108947, 0.9962240127779701086021934, 0.9992829840291237803789361;

        w << 0.0018398745955770841170924455540, 0.0042785083468637618660784110826, 0.0067102917659601362519069307298, 0.0091259686763266563540586454218, 0.011519376076880041750750606149, 0.013884612616115610824866086368, 0.016215878410338338882283672975, 0.018507464460161270409260545805, 0.020753761258039090775341953421, 0.022949271004889933148942319562, 0.025088620553344986618630138068, 0.027166574359097933225189839439, 0.029178047208280526945551502154, 0.031118116622219817508215988557, 0.032982034883779341765683179672, 0.034765240645355877697180504643, 0.036463370085457289630452409788, 0.038072267584349556763638324928, 0.039587995891544093984807928149, 0.041006845759666398635110037009, 0.042325345020815822982505485403, 0.043540267083027590798964315704, 0.044648638825941395370332669517, 0.045647747876292608685885992609, 0.046535149245383696510395418747, 0.047308671312268919080604988339, 0.047966421137995131411052756195, 0.048506789097883847864090099146, 0.048928452820511989944709361549, 0.049230380423747560785043116988, 0.049411833039918178967039646117, 0.04947236662393102088866936042, 0.049411833039918178967039646117, 0.049230380423747560785043116988, 0.048928452820511989944709361549, 0.048506789097883847864090099146, 0.047966421137995131411052756195, 0.047308671312268919080604988339, 0.046535149245383696510395418747, 0.045647747876292608685885992609, 0.044648638825941395370332669517, 0.043540267083027590798964315704, 0.042325345020815822982505485403, 0.041006845759666398635110037009, 0.039587995891544093984807928149, 0.038072267584349556763638324928, 0.036463370085457289630452409788, 0.034765240645355877697180504643, 0.032982034883779341765683179672, 0.031118116622219817508215988557, 0.029178047208280526945551502154, 0.027166574359097933225189839439, 0.025088620553344986618630138068, 0.022949271004889933148942319562, 0.020753761258039090775341953421, 0.018507464460161270409260545805, 0.016215878410338338882283672975, 0.013884612616115610824866086368, 0.011519376076880041750750606149, 0.0091259686763266563540586454218, 0.0067102917659601362519069307298, 0.0042785083468637618660784110826, 0.0018398745955770841170924455540;
        return true;
    }
    case 64 :
    {
        x << -0.99930504173577213945690562, -0.99634011677195527934692450, -0.99101337147674432073938238, -0.98333625388462595693129930, -0.97332682778991096374185351, -0.96100879965205371891861412, -0.94641137485840281606248149, -0.92956917213193957582149015, -0.91052213707850280575638067, -0.88931544599511410585340404, -0.86599939815409281976078339, -0.8406292962525803627516915, -0.8132653151227975597419233, -0.7839723589433414076102205, -0.7528199072605318966118638, -0.7198818501716108268489402, -0.6852363130542332425635584, -0.6489654712546573398577612, -0.6111553551723932502488530, -0.5718956462026340342838781, -0.5312794640198945456580139, -0.4894031457070529574785263, -0.4463660172534640879849477, -0.4022701579639916036957668, -0.3572201583376681159504426, -0.3113228719902109561575127, -0.2646871622087674163739642, -0.2174236437400070841496487, -0.1696444204239928180373136, -0.1214628192961205544703765, -0.0729931217877990394495429, -0.0243502926634244325089558, 0.0243502926634244325089558, 0.0729931217877990394495429, 0.1214628192961205544703765, 0.1696444204239928180373136, 0.2174236437400070841496487, 0.2646871622087674163739642, 0.3113228719902109561575127, 0.3572201583376681159504426, 0.4022701579639916036957668, 0.4463660172534640879849477, 0.4894031457070529574785263, 0.5312794640198945456580139, 0.5718956462026340342838781, 0.6111553551723932502488530, 0.6489654712546573398577612, 0.6852363130542332425635584, 0.7198818501716108268489402, 0.7528199072605318966118638, 0.7839723589433414076102205, 0.8132653151227975597419233, 0.8406292962525803627516915, 0.8659993981540928197607834, 0.8893154459951141058534040, 0.9105221370785028057563807, 0.9295691721319395758214902, 0.9464113748584028160624815, 0.9610087996520537189186141, 0.9733268277899109637418535, 0.9833362538846259569312993, 0.9910133714767443207393824, 0.9963401167719552793469245, 0.9993050417357721394569056;

        w << 0.0017832807216964329472960791450, 0.0041470332605624676352875357286, 0.006504457968978362856117360400, 0.008846759826363947723030914660, 0.011168139460131128818590493019, 0.013463047896718642598060766686, 0.015726030476024719321965995298, 0.017951715775697343085045302001, 0.020134823153530209372340316729, 0.022270173808383254159298330384, 0.024352702568710873338177550409, 0.026377469715054658671691792625, 0.028339672614259483227511305200, 0.030234657072402478867974059820, 0.032057928354851553585467504348, 0.033805161837141609391565482111, 0.035472213256882383810693146715, 0.037055128540240046040415101810, 0.038550153178615629128962496947, 0.039953741132720341386656926128, 0.041262563242623528610156297474, 0.042473515123653589007339767909, 0.043583724529323453376827860974, 0.044590558163756563060134710031, 0.045491627927418144479770996971, 0.046284796581314417295953249232, 0.046968182816210017325326285755, 0.047540165714830308662282206944, 0.04799938859645830772812617987, 0.04834476223480295716976952716, 0.04857546744150342693479906678, 0.04869095700913972038336539073, 0.04869095700913972038336539073, 0.04857546744150342693479906678, 0.04834476223480295716976952716, 0.04799938859645830772812617987, 0.047540165714830308662282206944, 0.046968182816210017325326285755, 0.046284796581314417295953249232, 0.045491627927418144479770996971, 0.044590558163756563060134710031, 0.043583724529323453376827860974, 0.042473515123653589007339767909, 0.041262563242623528610156297474, 0.039953741132720341386656926128, 0.038550153178615629128962496947, 0.037055128540240046040415101810, 0.035472213256882383810693146715, 0.033805161837141609391565482111, 0.032057928354851553585467504348, 0.030234657072402478867974059820, 0.028339672614259483227511305200, 0.026377469715054658671691792625, 0.024352702568710873338177550409, 0.022270173808383254159298330384, 0.020134823153530209372340316729, 0.017951715775697343085045302001, 0.015726030476024719321965995298, 0.013463047896718642598060766686, 0.011168139460131128818590493019, 0.008846759826363947723030914660, 0.006504457968978362856117360400, 0.0041470332605624676352875357286, 0.0017832807216964329472960791450;
        return true;
    }
    case 65 :
    {
        x << -0.99932609707541287726569361, -0.99645094806184916305579494, -0.99128527617680166872182118, -0.98383981218703494137763778, -0.97413153983355116907496789, -0.96218275471805523771198375, -0.94802092816840750637376974, -0.93167862822874933796567699, -0.91319344054284626173654692, -0.89260788050473893142328554, -0.8699692949264070361941320, -0.8453297528999302839424500, -0.8187459259226514534339191, -0.7902789574921218430473804, -0.7599943224419997868739828, -0.7279616763294246790119737, -0.6942546952139916335526225, -0.6589509061936251330409408, -0.6221315090854002415825996, -0.5838811896604873133271545, -0.5442879248622271385455725, -0.5034427804550068823410431, -0.4614397015691450576978341, -0.4183752966234090092641990, -0.3743486151220660120087939, -0.3294609198374864076452867, -0.2838154539022487306176554, -0.2375172033464168065707124, -0.1906726556261427697749124, -0.1433895546989751711312496, -0.0957766532091975056522186, -0.0479434623531718575225298, 0.0000000000000000000000000, 0.0479434623531718575225298, 0.0957766532091975056522186, 0.1433895546989751711312496, 0.1906726556261427697749124, 0.2375172033464168065707124, 0.2838154539022487306176554, 0.3294609198374864076452867, 0.3743486151220660120087939, 0.4183752966234090092641990, 0.4614397015691450576978341, 0.5034427804550068823410431, 0.5442879248622271385455725, 0.5838811896604873133271545, 0.6221315090854002415825996, 0.6589509061936251330409408, 0.6942546952139916335526225, 0.7279616763294246790119737, 0.7599943224419997868739828, 0.7902789574921218430473804, 0.8187459259226514534339191, 0.8453297528999302839424500, 0.8699692949264070361941320, 0.8926078805047389314232855, 0.9131934405428462617365469, 0.9316786282287493379656770, 0.9480209281684075063737697, 0.9621827547180552377119837, 0.9741315398335511690749679, 0.9838398121870349413776378, 0.9912852761768016687218212, 0.9964509480618491630557949, 0.9993260970754128772656936;

        w << 0.0017292582513002508983395851463, 0.0040215241720037363470786599528, 0.0063079425789717545501888719039, 0.0085801482668814598936358121592, 0.0108326787895979686215140551272, 0.013060311639994846336168342922, 0.015257912146448310349265388145, 0.017420421997670248495365759969, 0.019542865836750062826837429313, 0.021620361284934062841654274667, 0.023648129691287236698780978994, 0.025621506938037758214084978694, 0.027535954088450343942499722327, 0.029387067789310668062644859210, 0.031170590380189142464431845777, 0.032882419676368574984049638008, 0.034518618398549058625221276859, 0.036075423225565273932166270524, 0.037549253448257709809772223198, 0.038936719204051197616673806364, 0.040234629273005533815446337743, 0.041439998417240293022686299233, 0.042550054246755802719217150803, 0.043562243595800486532284821661, 0.044474238395082974427323504000, 0.045283941026300230657128240574, 0.045989489146651696963893390818, 0.046589259972233498302255136790, 0.047081874010454522246006808290, 0.047466198232885503152644458740, 0.047741348681240621559038972227, 0.047906692500495862031347289176, 0.04796184939446661812070762137, 0.047906692500495862031347289176, 0.047741348681240621559038972227, 0.047466198232885503152644458740, 0.047081874010454522246006808290, 0.046589259972233498302255136790, 0.045989489146651696963893390818, 0.045283941026300230657128240574, 0.044474238395082974427323504000, 0.043562243595800486532284821661, 0.042550054246755802719217150803, 0.041439998417240293022686299233, 0.040234629273005533815446337743, 0.038936719204051197616673806364, 0.037549253448257709809772223198, 0.036075423225565273932166270524, 0.034518618398549058625221276859, 0.032882419676368574984049638008, 0.031170590380189142464431845777, 0.029387067789310668062644859210, 0.027535954088450343942499722327, 0.025621506938037758214084978694, 0.023648129691287236698780978994, 0.021620361284934062841654274667, 0.019542865836750062826837429313, 0.017420421997670248495365759969, 0.015257912146448310349265388145, 0.013060311639994846336168342922, 0.0108326787895979686215140551272, 0.0085801482668814598936358121592, 0.0063079425789717545501888719039, 0.0040215241720037363470786599528, 0.0017292582513002508983395851463;
        return true;
    }
    case 127 :
    {
        x << -0.9998221304153061462673512, -0.9990629343553118951383159, -0.9976975661898046210744170, -0.9957265513520272266354334, -0.9931510492545171473611308, -0.9899726145914841576077867, -0.9861931740169316667104383, -0.9818150208038141100334631, -0.9768408123430703268174439, -0.9712735681615291922889469, -0.9651166679452921210908251, -0.9583738494252387711491029, -0.9510492060778803105479076, -0.9431471846248148273454496, -0.9346725823247379685736349, -0.9256305440562338491274647, -0.9160265591914658093130886, -0.9058664582618213828024613, -0.8951564094170837089690438, -0.8839029146800265699452579, -0.8721128059985607114196375, -0.8597932410977408098120313, -0.8469516991340975984533393, -0.8335959761548995143795572, -0.8197341803650786741551191, -0.8053747272046802146665608, -0.7905263342398137999454500, -0.7751980158702023824449628, -0.7593990778565366715566637, -0.7431391116709545129205669, -0.7264279886740726855356929, -0.7092758541221045609994446, -0.6916931210077006701564414, -0.6736904637382504853466825, -0.6552788116554826302767651, -0.6364693424002972413476082, -0.6172734751268582838576392, -0.5977028635700652293844120, -0.5777693889706125800032517, -0.5574851528619322329218619, -0.5368624697233975674581664, -0.5159138595042493572772773, -0.4946520400227821173949402, -0.4730899192454052416450999, -0.4512405874502662273318986, -0.4291173092801933762625441, -0.4067335156897825634086729, -0.3841027957915169357790778, -0.3612388886058697060709248, -0.3381556747203985013760003, -0.3148671678628949814860148, -0.2913875063937056207945188, -0.2677309447223886208883435, -0.2439118446539178579707132, -0.2199446666696875424545234, -0.1958439611486108515042816, -0.1716243595336421650083449, -0.1473005654490856693893293, -0.1228873457740829717260337, -0.0983995216776989707510918, -0.0738519596210485452734404, -0.0492595623319266303153793, -0.0246372597574209446148971, 0.0000000000000000000000000, 0.0246372597574209446148971, 0.0492595623319266303153793, 0.0738519596210485452734404, 0.0983995216776989707510918, 0.1228873457740829717260337, 0.1473005654490856693893293, 0.1716243595336421650083449, 0.1958439611486108515042816, 0.2199446666696875424545234, 0.2439118446539178579707132, 0.2677309447223886208883435, 0.2913875063937056207945188, 0.3148671678628949814860148, 0.3381556747203985013760003, 0.3612388886058697060709248, 0.3841027957915169357790778, 0.4067335156897825634086729, 0.4291173092801933762625441, 0.4512405874502662273318986, 0.4730899192454052416450999, 0.4946520400227821173949402, 0.5159138595042493572772773, 0.5368624697233975674581664, 0.5574851528619322329218619, 0.5777693889706125800032517, 0.5977028635700652293844120, 0.6172734751268582838576392, 0.6364693424002972413476082, 0.6552788116554826302767651, 0.6736904637382504853466825, 0.6916931210077006701564414, 0.7092758541221045609994446, 0.7264279886740726855356929, 0.7431391116709545129205669, 0.7593990778565366715566637, 0.7751980158702023824449628, 0.7905263342398137999454500, 0.8053747272046802146665608, 0.8197341803650786741551191, 0.8335959761548995143795572, 0.8469516991340975984533393, 0.8597932410977408098120313, 0.8721128059985607114196375, 0.8839029146800265699452579, 0.8951564094170837089690438, 0.9058664582618213828024613, 0.9160265591914658093130886, 0.9256305440562338491274647, 0.9346725823247379685736349, 0.9431471846248148273454496, 0.9510492060778803105479076, 0.9583738494252387711491029, 0.965116667945292121090825, 0.971273568161529192288947, 0.976840812343070326817444, 0.981815020803814110033463, 0.986193174016931666710438, 0.989972614591484157607787, 0.993151049254517147361131, 0.995726551352027226635433, 0.997697566189804621074417, 0.999062934355311895138316, 0.999822130415306146267351;

        w << 0.00045645726109586662791936519265, 0.00106227668695384869596523598532, 0.0016683488125171936761028862915, 0.0022734860707492547802810840776, 0.0028772587656289004082883197514, 0.0034792893810051465908910894100, 0.0040792095178254605327114733457, 0.0046766539777779034772638165663, 0.0052712596565634400891303815906, 0.0058626653903523901033648343751, 0.0064505120486899171845442463869, 0.0070344427036681608755685893033, 0.0076141028256526859356393930849, 0.0081891404887415730817235884719, 0.0087592065795403145773316804234, 0.0093239550065309714787536985834, 0.0098830429087554914716648010900, 0.0104361308631410052256731719977, 0.0109828830900689757887996573761, 0.011522967656921087154811609735, 0.012056056679400848183529562145, 0.012581826520465013101514365424, 0.013099957986718627426172681913, 0.013610136522139249906034237534, 0.014112052399003395774044161634, 0.014605400905893418351737288079, 0.015089882532666922992635733981, 0.015565203152273955098532590263, 0.016031074199309941802254151843, 0.016487212845194879399346060358, 0.016933342169871654545878815295, 0.017369191329918731922164721250, 0.017794495722974774231027912900, 0.018208997148375106468721469154, 0.018612443963902310429440419899, 0.019004591238555646611148901045, 0.019385200901246454628112623489, 0.019754041885329183081815217323, 0.020110890268880247225644623956, 0.020455529410639508279497065713, 0.020787750081531811812652137291, 0.021107350591688713643523847922, 0.021414136912893259295449693234, 0.021707922796373466052301324695, 0.021988529885872983756478409759, 0.022255787825930280235631416460, 0.022509534365300608085694429903, 0.022749615455457959852242553241, 0.022975885344117206754377437839, 0.023188206663719640249922582982, 0.023386450514828194170722043497, 0.023570496544381716050033676844, 0.023740233018760777777714726703, 0.023895556891620665983864481754, 0.024036373866450369675132086026, 0.024162598453819584716522917711, 0.024274154023278979833195063937, 0.024370972849882214952813561907, 0.024452996155301467956140198472, 0.024520174143511508275183033290, 0.024572466031020653286354137335, 0.024609840071630254092545634003, 0.024632273575707679066033370218, 0.02463975292396109441957941748, 0.024632273575707679066033370218, 0.024609840071630254092545634003, 0.024572466031020653286354137335, 0.024520174143511508275183033290, 0.024452996155301467956140198472, 0.024370972849882214952813561907, 0.024274154023278979833195063937, 0.024162598453819584716522917711, 0.024036373866450369675132086026, 0.023895556891620665983864481754, 0.023740233018760777777714726703, 0.023570496544381716050033676844, 0.023386450514828194170722043497, 0.023188206663719640249922582982, 0.022975885344117206754377437839, 0.022749615455457959852242553241, 0.022509534365300608085694429903, 0.022255787825930280235631416460, 0.021988529885872983756478409759, 0.021707922796373466052301324695, 0.021414136912893259295449693234, 0.021107350591688713643523847922, 0.020787750081531811812652137291, 0.020455529410639508279497065713, 0.020110890268880247225644623956, 0.019754041885329183081815217323, 0.019385200901246454628112623489, 0.019004591238555646611148901045, 0.018612443963902310429440419899, 0.018208997148375106468721469154, 0.017794495722974774231027912900, 0.017369191329918731922164721250, 0.016933342169871654545878815295, 0.016487212845194879399346060358, 0.016031074199309941802254151843, 0.015565203152273955098532590263, 0.015089882532666922992635733981, 0.014605400905893418351737288079, 0.014112052399003395774044161634, 0.013610136522139249906034237534, 0.013099957986718627426172681913, 0.012581826520465013101514365424, 0.012056056679400848183529562145, 0.011522967656921087154811609735, 0.0109828830900689757887996573761, 0.0104361308631410052256731719977, 0.0098830429087554914716648010900, 0.0093239550065309714787536985834, 0.0087592065795403145773316804234, 0.0081891404887415730817235884719, 0.0076141028256526859356393930849, 0.0070344427036681608755685893033, 0.0064505120486899171845442463869, 0.0058626653903523901033648343751, 0.0052712596565634400891303815906, 0.0046766539777779034772638165663, 0.0040792095178254605327114733457, 0.0034792893810051465908910894100, 0.0028772587656289004082883197514, 0.0022734860707492547802810840776, 0.0016683488125171936761028862915, 0.00106227668695384869596523598532, 0.00045645726109586662791936519265;
        return true;
    }
    case 128 :
    {
        x << -0.9998248879471319144736081, -0.9990774599773758950119878, -0.9977332486255140198821574, -0.9957927585349811868641612, -0.9932571129002129353034372, -0.9901278184917343833379303, -0.9864067427245862088712355, -0.9820961084357185360247656, -0.9771984914639073871653744, -0.9717168187471365809043384, -0.9656543664319652686458290, -0.9590147578536999280989185, -0.9518019613412643862177963, -0.9440202878302201821211114, -0.9356743882779163757831268, -0.9267692508789478433346245, -0.9173101980809605370364836, -0.9073028834017568139214859, -0.8967532880491581843864474, -0.8856677173453972174082924, -0.8740527969580317986954180, -0.8619154689395484605906323, -0.8492629875779689691636001, -0.8361029150609068471168753, -0.8224431169556438424645942, -0.8082917575079136601196422, -0.7936572947621932902433329, -0.7785484755064119668504941, -0.7629743300440947227797691, -0.7469441667970619811698824, -0.7304675667419088064717369, -0.7135543776835874133438599, -0.6962147083695143323850866, -0.6784589224477192593677557, -0.6602976322726460521059468, -0.6417416925623075571535249, -0.6228021939105849107615396, -0.6034904561585486242035732, -0.5838180216287630895500389, -0.5637966482266180839144308, -0.5434383024128103634441936, -0.5227551520511754784539479, -0.5017595591361444642896063, -0.4804640724041720258582757, -0.4588814198335521954490891, -0.4370245010371041629370429, -0.4149063795522750154922739, -0.3925402750332674427356482, -0.3699395553498590266165917, -0.3471177285976355084261628, -0.3240884350244133751832523, -0.3008654388776772026671541, -0.2774626201779044028062316, -0.2538939664226943208556180, -0.2301735642266599864109866, -0.2063155909020792171540580, -0.1823343059853371824103826, -0.1582440427142249339974755, -0.1340591994611877851175753, -0.1097942311276437466729747, -0.0854636405045154986364980, -0.0610819696041395681037870, -0.0366637909687334933302153, -0.0122236989606157641980521, 0.0122236989606157641980521, 0.0366637909687334933302153, 0.0610819696041395681037870, 0.0854636405045154986364980, 0.1097942311276437466729747, 0.1340591994611877851175753, 0.1582440427142249339974755, 0.1823343059853371824103826, 0.2063155909020792171540580, 0.2301735642266599864109866, 0.2538939664226943208556180, 0.2774626201779044028062316, 0.3008654388776772026671541, 0.3240884350244133751832523, 0.3471177285976355084261628, 0.3699395553498590266165917, 0.3925402750332674427356482, 0.4149063795522750154922739, 0.4370245010371041629370429, 0.4588814198335521954490891, 0.4804640724041720258582757, 0.5017595591361444642896063, 0.5227551520511754784539479, 0.5434383024128103634441936, 0.5637966482266180839144308, 0.5838180216287630895500389, 0.6034904561585486242035732, 0.6228021939105849107615396, 0.6417416925623075571535249, 0.6602976322726460521059468, 0.6784589224477192593677557, 0.6962147083695143323850866, 0.7135543776835874133438599, 0.7304675667419088064717369, 0.7469441667970619811698824, 0.7629743300440947227797691, 0.7785484755064119668504941, 0.7936572947621932902433329, 0.8082917575079136601196422, 0.8224431169556438424645942, 0.8361029150609068471168753, 0.8492629875779689691636001, 0.8619154689395484605906323, 0.8740527969580317986954180, 0.8856677173453972174082924, 0.8967532880491581843864474, 0.9073028834017568139214859, 0.9173101980809605370364836, 0.926769250878947843334625, 0.935674388277916375783127, 0.944020287830220182121111, 0.951801961341264386217796, 0.959014757853699928098919, 0.965654366431965268645829, 0.971716818747136580904338, 0.977198491463907387165374, 0.982096108435718536024766, 0.986406742724586208871236, 0.990127818491734383337930, 0.993257112900212935303437, 0.995792758534981186864161, 0.997733248625514019882157, 0.999077459977375895011988, 0.999824887947131914473608;

        w << 0.00044938096029209037639429223999, 0.0010458126793403487793128516001, 0.0016425030186690295387908755948, 0.0022382884309626187436220542727, 0.0028327514714579910952857346468, 0.0034255260409102157743377846601, 0.0040162549837386423131943434863, 0.0046045842567029551182905419803, 0.0051901618326763302050707671348, 0.0057726375428656985893346176261, 0.006351663161707188787214327826, 0.006926892566898813563426670360, 0.007497981925634728687671962688, 0.008064589890486057972928598698, 0.008626377798616749704978843782, 0.009183009871660874334478743688, 0.009734153415006805863548266094, 0.010279479015832157133215340326, 0.010818660739503076247659646277, 0.011351376324080416693281668453, 0.011877307372740279575891106926, 0.012396139543950922968821728197, 0.012907562739267347220442834004, 0.013411271288616332314488951616, 0.013906964132951985244288007396, 0.014394345004166846176823892009, 0.014873122602147314252385498520, 0.015343010768865144085990853741, 0.015803728659399346858965631687, 0.016255000909785187051657456477, 0.016696557801589204589091507954, 0.017128135423111376830680987619, 0.017549475827117704648706925634, 0.017960327185008685940196927525, 0.018360443937331343221289290991, 0.018749586940544708650919548474, 0.019127523609950945486518531668, 0.019494028058706602823021918681, 0.019848881232830862219944413265, 0.020191871042130041180673158406, 0.020522792486960069432284967788, 0.020841447780751149113583948423, 0.021147646468221348537019535180, 0.021441205539208460137111853878, 0.021721949538052075375260957768, 0.021989710668460491434122106599, 0.022244328893799765104629133607, 0.022485652032744966871824603941, 0.022713535850236461309712635923, 0.022927844143686846920410987209, 0.023128448824387027879297902403, 0.023315229994062760122415671273, 0.023488076016535913153025273282, 0.023646883584447615143651392303, 0.023791557781003400638780709885, 0.023922012136703455672450408817, 0.024038168681024052637587316820, 0.024139957989019284997716653890, 0.024227319222815248120093308442, 0.024300200167971865323442606364, 0.024358557264690625853268520246, 0.024402355633849582093297989694, 0.02443156909785004505484856143, 0.02444618019626251821132585261, 0.02444618019626251821132585261, 0.02443156909785004505484856143, 0.024402355633849582093297989694, 0.024358557264690625853268520246, 0.024300200167971865323442606364, 0.024227319222815248120093308442, 0.024139957989019284997716653890, 0.024038168681024052637587316820, 0.023922012136703455672450408817, 0.023791557781003400638780709885, 0.023646883584447615143651392303, 0.023488076016535913153025273282, 0.023315229994062760122415671273, 0.023128448824387027879297902403, 0.022927844143686846920410987209, 0.022713535850236461309712635923, 0.022485652032744966871824603941, 0.022244328893799765104629133607, 0.021989710668460491434122106599, 0.021721949538052075375260957768, 0.021441205539208460137111853878, 0.021147646468221348537019535180, 0.020841447780751149113583948423, 0.020522792486960069432284967788, 0.020191871042130041180673158406, 0.019848881232830862219944413265, 0.019494028058706602823021918681, 0.019127523609950945486518531668, 0.018749586940544708650919548474, 0.018360443937331343221289290991, 0.017960327185008685940196927525, 0.017549475827117704648706925634, 0.017128135423111376830680987619, 0.016696557801589204589091507954, 0.016255000909785187051657456477, 0.015803728659399346858965631687, 0.015343010768865144085990853741, 0.014873122602147314252385498520, 0.014394345004166846176823892009, 0.013906964132951985244288007396, 0.013411271288616332314488951616, 0.012907562739267347220442834004, 0.012396139543950922968821728197, 0.011877307372740279575891106926, 0.011351376324080416693281668453, 0.010818660739503076247659646277, 0.010279479015832157133215340326, 0.009734153415006805863548266094, 0.009183009871660874334478743688, 0.008626377798616749704978843782, 0.008064589890486057972928598698, 0.007497981925634728687671962688, 0.006926892566898813563426670360, 0.006351663161707188787214327826, 0.0057726375428656985893346176261, 0.0051901618326763302050707671348, 0.0046045842567029551182905419803, 0.0040162549837386423131943434863, 0.0034255260409102157743377846601, 0.0028327514714579910952857346468, 0.0022382884309626187436220542727, 0.0016425030186690295387908755948, 0.0010458126793403487793128516001, 0.00044938096029209037639429223999;
        return true;
    }
    case 129 :
    {
        x << -0.9998275818477487191077441, -0.9990916504696409986514389, -0.9977681080525852721429460, -0.9958574393142831982149111, -0.9933607326210712814854011, -0.9902794486488178389207689, -0.9866153978313475022005761, -0.9823707352517413115507418, -0.9775479582993672474447814, -0.9721499048427034297274163, -0.9661797514202097197778763, -0.9596410113101918904168119, -0.9525375324342090471027732, -0.9448734950776734726784764, -0.9366534094216514605284616, -0.9278821128840036204317296, -0.9185647672698286252225115, -0.9087068557320696331245539, -0.8983141795436338850435985, -0.8873928546826803665034968, -0.8759493082329433892035217, -0.8639902746011257878940216, -0.8515227915535356930243826, -0.8385541960742664442975407, -0.8250921200473358809210133, -0.8111444857653120742087717, -0.7967195012670592680339606, -0.7818256555073413245387500, -0.7664717133611208816717785, -0.7506667104654910227632368, -0.7344199479022727047791516, -0.7177409867244055767721220, -0.7006396423293521790044710, -0.6831259786828258512462248, -0.6652103023962409818802202, -0.6469031566613704719753373, -0.6282153150457794374886895, -0.6091577751526861909563306, -0.5897417521489813916767844, -0.5699786721652138894754096, -0.5498801655714271702189358, -0.5294580601328034000099406, -0.5087243740491428186199463, -0.4876913088822746111853066, -0.4663712423755613514331869, -0.4447767211697226217818454, -0.4229204534192644388475065, -0.4008153013138596117693121, -0.3784742735090801012801265, -0.3559105174709357969672656, -0.3331373117387248575049982, -0.3101680581107488341147318, -0.2870162737574911929568755, -0.2636955832669005409666949, -0.2402197106264598167721148, -0.2166024711467599103221439, -0.1928577633313305998663880, -0.1689995606975133227390302, -0.1450419035531891084328306, -0.1209988907342009817690539, -0.0968846713073332753086909, -0.0727134362437305599118207, -0.0484994100676562986191764, -0.0242568424855058415749954, 0.0000000000000000000000000, 0.0242568424855058415749954, 0.0484994100676562986191764, 0.0727134362437305599118207, 0.0968846713073332753086909, 0.1209988907342009817690539, 0.1450419035531891084328306, 0.1689995606975133227390302, 0.1928577633313305998663880, 0.2166024711467599103221439, 0.2402197106264598167721148, 0.2636955832669005409666949, 0.2870162737574911929568755, 0.3101680581107488341147318, 0.3331373117387248575049982, 0.3559105174709357969672656, 0.3784742735090801012801265, 0.4008153013138596117693121, 0.4229204534192644388475065, 0.4447767211697226217818454, 0.4663712423755613514331869, 0.4876913088822746111853066, 0.5087243740491428186199463, 0.5294580601328034000099406, 0.5498801655714271702189358, 0.5699786721652138894754096, 0.5897417521489813916767844, 0.6091577751526861909563306, 0.6282153150457794374886895, 0.6469031566613704719753373, 0.6652103023962409818802202, 0.6831259786828258512462248, 0.7006396423293521790044710, 0.7177409867244055767721220, 0.7344199479022727047791516, 0.7506667104654910227632368, 0.7664717133611208816717785, 0.7818256555073413245387500, 0.7967195012670592680339606, 0.8111444857653120742087717, 0.8250921200473358809210133, 0.8385541960742664442975407, 0.8515227915535356930243826, 0.8639902746011257878940216, 0.875949308232943389203522, 0.887392854682680366503497, 0.898314179543633885043599, 0.908706855732069633124554, 0.918564767269828625222511, 0.927882112884003620431730, 0.936653409421651460528462, 0.944873495077673472678476, 0.952537532434209047102773, 0.959641011310191890416812, 0.966179751420209719777876, 0.972149904842703429727416, 0.977547958299367247444781, 0.982370735251741311550742, 0.986615397831347502200576, 0.990279448648817838920769, 0.993360732621071281485401, 0.995857439314283198214911, 0.997768108052585272142946, 0.999091650469640998651439, 0.999827581847748719107744;

        w << 0.00044246794182939296923668005717, 0.00102972844619622394463273519315, 0.0016172530556785534682413679271, 0.0022039015180966937075786419741, 0.0027892681877797554940944677057, 0.0033729979506246246117755709288, 0.0039547444682113562172392974765, 0.0045341644298525434513226874954, 0.0051109164669246267289761565766, 0.0056846609912469045788016012203, 0.0062550602724461408889348709586, 0.0068217785893519121070498527769, 0.0073844824072454014447165055698, 0.0079428405646668029041114107832, 0.0084965244635723279730542832506, 0.0090452082602137316404219313819, 0.0095885690555104190787301294510, 0.0101262870842733548093160774580, 0.0106580459029055185304204093001, 0.0111835325753305049735380697538, 0.011702437856964778185746436834, 0.012214456376582979416221105914, 0.012719286815944623465099036330, 0.013216632087061724231482387345, 0.013706199506993971244060563234, 0.014187700970062900419317230938, 0.014660853117380060971041027493, 0.015125377503587024690403432771, 0.015581000760707523415881287558, 0.016027454759014214436403950465, 0.016464476764814667467169189640, 0.016891809595063204177526208819, 0.017309201768707240731293596444, 0.017716407654678809269702031810, 0.018113187616443980503999783812, 0.018499308153024985727791918518, 0.018874542036411948181617592169, 0.019238668445283284085199492202, 0.019591473094956024580283987216, 0.019932748363489542089706675388, 0.020262293413868438317104423081, 0.020579914312192665948185517085, 0.020885424141805311409990024684, 0.021178643113290860912881038703, 0.021459398670279205389981598196, 0.021727525590993110687305178710, 0.021982866085479386179554968899, 0.022225269888466526554736910919, 0.022454594347794176432066564511, 0.022670704508362374313093970958, 0.022873473191551169638592083492, 0.023062781070063872924670495006, 0.023238516738149892544490435771, 0.023400576777165831146714346635, 0.023548865816436258377269094263, 0.023683296589378342897341543485, 0.023803789984857314051325299744, 0.023910275093742530302367230296, 0.024002689250636756075547029720, 0.024080978070754089272959634041, 0.024145095481924836783843156014, 0.024195003751708503129818111597, 0.024230673509598936275508460625, 0.024252083764308562906498864071, 0.02425922191612154143202867472, 0.024252083764308562906498864071, 0.024230673509598936275508460625, 0.024195003751708503129818111597, 0.024145095481924836783843156014, 0.024080978070754089272959634041, 0.024002689250636756075547029720, 0.023910275093742530302367230296, 0.023803789984857314051325299744, 0.023683296589378342897341543485, 0.023548865816436258377269094263, 0.023400576777165831146714346635, 0.023238516738149892544490435771, 0.023062781070063872924670495006, 0.022873473191551169638592083492, 0.022670704508362374313093970958, 0.022454594347794176432066564511, 0.022225269888466526554736910919, 0.021982866085479386179554968899, 0.021727525590993110687305178710, 0.021459398670279205389981598196, 0.021178643113290860912881038703, 0.020885424141805311409990024684, 0.020579914312192665948185517085, 0.020262293413868438317104423081, 0.019932748363489542089706675388, 0.019591473094956024580283987216, 0.019238668445283284085199492202, 0.018874542036411948181617592169, 0.018499308153024985727791918518, 0.018113187616443980503999783812, 0.017716407654678809269702031810, 0.017309201768707240731293596444, 0.016891809595063204177526208819, 0.016464476764814667467169189640, 0.016027454759014214436403950465, 0.015581000760707523415881287558, 0.015125377503587024690403432771, 0.014660853117380060971041027493, 0.014187700970062900419317230938, 0.013706199506993971244060563234, 0.013216632087061724231482387345, 0.012719286815944623465099036330, 0.012214456376582979416221105914, 0.011702437856964778185746436834, 0.0111835325753305049735380697538, 0.0106580459029055185304204093001, 0.0101262870842733548093160774580, 0.0095885690555104190787301294510, 0.0090452082602137316404219313819, 0.0084965244635723279730542832506, 0.0079428405646668029041114107832, 0.0073844824072454014447165055698, 0.0068217785893519121070498527769, 0.0062550602724461408889348709586, 0.0056846609912469045788016012203, 0.0051109164669246267289761565766, 0.0045341644298525434513226874954, 0.0039547444682113562172392974765, 0.0033729979506246246117755709288, 0.0027892681877797554940944677057, 0.0022039015180966937075786419741, 0.0016172530556785534682413679271, 0.00102972844619622394463273519315, 0.00044246794182939296923668005717;
        return true;
    }
    case 255 :
    {
        x << -0.999955705317563751730191, -0.999766621312000569367063, -0.999426474680169959344386, -0.998935241284654635142155, -0.998292986136967889228248, -0.997499804126615814044844, -0.996555814435198617028738, -0.995461159480026294089975, -0.994216004616630164799381, -0.992820538021989138984811, -0.991274970630385567164523, -0.989579536085920123498574, -0.987734490699732356281248, -0.985740113407419277752900, -0.983596705724776358640192, -0.981304591701017185126565, -0.978864117869068155239121, -0.976275653192735980815246, -0.973539589010643617645393, -0.970656338976880365477697, -0.967626338998338798105523, -0.964450047168726298761719, -0.961127943699247839572910, -0.957660530845962076295490, -0.954048332833816317950921, -0.950291895777368285733522, -0.946391787598204251752103, -0.942348597939064408301480, -0.938162938074687317626793, -0.933835440819386124349338, -0.929366760431369935739045, -0.924757572513824425220425, -0.920008573912766315142721, -0.915120482611686961035103, -0.910094037623000801254172, -0.904929998876314959753358, -0.899629147103536800144342, -0.894192283720836729335637, -0.888620230707484040924981, -0.882913830481574073645470, -0.877073945772665439532627, -0.871101459491346550796200, -0.864997274595751144137121, -0.858762313955042966785823, -0.852397520209890250084237, -0.845903855629951054143931, -0.839282301968391021084600, -0.832533860313455524647230, -0.825659550937118650611534, -0.818660413140831885432406, -0.811537505098395829833580, -0.804291903695978689734633, -0.796924704369305728807154, -0.789437020938044295117764, -0.781829985437409458675147, -0.774104747947015717207115, -0.766262476417000644100858, -0.758304356491446765092016, -0.750231591329128358931528, -0.742045401421610281838045, -0.733747024408726316001889, -0.725337714891464938687812, -0.716818744242290800531501, -0.708191400412930589382399, -0.699456987739652339456557, -0.690616826746067624571761, -0.681672253943486448787259, -0.672624621628855017806731, -0.663475297680306939970658, -0.654225665350358766508700, -0.644877123056781136890077, -0.635431084171177146547142, -0.625888976805299900901619, -0.616252243595141561442344, -0.606522341482826526536576, -0.596700741496341721653202, -0.586788928527137300685706, -0.576788401105631382036211, -0.566700671174652760010815, -0.556527263860855843833077, -0.546269717244142383159817, -0.535929582125124840335150, -0.525508421790666565699453, -0.515007811777534223035005, -0.504429339634198197635551, -0.493774604680816999489812, -0.483045217767441948626854, -0.472242801030478698742627, -0.461368987647442418771401, -0.450425421590043710043279, -0.439413757375642589040685, -0.428335659817108112494341, -0.417192803771121462605751, -0.405986873884960545511889, -0.394719564341804385683361, -0.383392578604595822734854, -0.372007629158501235092510, -0.360566437252006227074021, -0.349070732636686422161576, -0.337522253305692705554261, -0.325922745230990453444769, -0.314273962099392474845918, -0.302577665047425574167140, -0.290835622395070819082047, -0.279049609378417768508970, -0.267221407881273079721012, -0.255352806165764071686080, -0.243445598601977973686482, -0.231501585396677734059116, -0.219522572321135403508985, -0.207510370438124240859625, -0.195466795828110816293869, -0.183393669314688508087976, -0.171292816189293903533225, -0.159166065935247723154292, -0.147015251951161989456661, -0.134842211273755257250625, -0.122648784300117812092492, -0.110436814509468826540991, -0.098208148184447540736015, -0.085964634131980604256000, -0.073708123403767780288977, -0.061440469016428270850728, -0.049163525671349973093019, -0.036879149474284021657652, -0.024589197654727010541405, -0.012295528285133320036860, 0.000000000000000000000000, 0.012295528285133320036860, 0.024589197654727010541405, 0.036879149474284021657652, 0.049163525671349973093019, 0.061440469016428270850728, 0.073708123403767780288977, 0.085964634131980604256000, 0.098208148184447540736015, 0.110436814509468826540991, 0.122648784300117812092492, 0.134842211273755257250625, 0.147015251951161989456661, 0.159166065935247723154292, 0.171292816189293903533225, 0.183393669314688508087976, 0.195466795828110816293869, 0.207510370438124240859625, 0.219522572321135403508985, 0.231501585396677734059116, 0.243445598601977973686482, 0.255352806165764071686080, 0.267221407881273079721012, 0.279049609378417768508970, 0.290835622395070819082047, 0.302577665047425574167140, 0.314273962099392474845918, 0.325922745230990453444769, 0.337522253305692705554261, 0.349070732636686422161576, 0.360566437252006227074021, 0.372007629158501235092510, 0.383392578604595822734854, 0.394719564341804385683361, 0.405986873884960545511889, 0.417192803771121462605751, 0.428335659817108112494341, 0.439413757375642589040685, 0.450425421590043710043279, 0.461368987647442418771401, 0.472242801030478698742627, 0.483045217767441948626854, 0.493774604680816999489812, 0.504429339634198197635551, 0.515007811777534223035005, 0.525508421790666565699453, 0.535929582125124840335150, 0.546269717244142383159817, 0.556527263860855843833077, 0.566700671174652760010815, 0.576788401105631382036211, 0.586788928527137300685706, 0.596700741496341721653202, 0.606522341482826526536576, 0.616252243595141561442344, 0.625888976805299900901619, 0.635431084171177146547142, 0.644877123056781136890077, 0.654225665350358766508700, 0.663475297680306939970658, 0.672624621628855017806731, 0.681672253943486448787259, 0.690616826746067624571761, 0.699456987739652339456557, 0.708191400412930589382399, 0.716818744242290800531501, 0.725337714891464938687812, 0.733747024408726316001889, 0.742045401421610281838045, 0.750231591329128358931528, 0.758304356491446765092016, 0.766262476417000644100858, 0.774104747947015717207115, 0.781829985437409458675147, 0.789437020938044295117764, 0.796924704369305728807154, 0.804291903695978689734633, 0.811537505098395829833580, 0.818660413140831885432406, 0.825659550937118650611534, 0.832533860313455524647230, 0.839282301968391021084600, 0.845903855629951054143931, 0.852397520209890250084237, 0.858762313955042966785823, 0.864997274595751144137121, 0.871101459491346550796200, 0.877073945772665439532627, 0.882913830481574073645470, 0.888620230707484040924981, 0.894192283720836729335637, 0.899629147103536800144342, 0.904929998876314959753358, 0.910094037623000801254172, 0.915120482611686961035103, 0.920008573912766315142721, 0.924757572513824425220425, 0.929366760431369935739045, 0.933835440819386124349338, 0.938162938074687317626793, 0.942348597939064408301480, 0.946391787598204251752103, 0.950291895777368285733522, 0.954048332833816317950921, 0.957660530845962076295490, 0.961127943699247839572910, 0.964450047168726298761719, 0.967626338998338798105523, 0.970656338976880365477697, 0.973539589010643617645393, 0.976275653192735980815246, 0.978864117869068155239121, 0.981304591701017185126565, 0.983596705724776358640192, 0.985740113407419277752900, 0.987734490699732356281248, 0.989579536085920123498574, 0.991274970630385567164523, 0.992820538021989138984811, 0.994216004616630164799381, 0.995461159480026294089975, 0.996555814435198617028738, 0.997499804126615814044844, 0.998292986136967889228248, 0.998935241284654635142155, 0.999426474680169959344386, 0.999766621312000569367063, 0.999955705317563751730191;

        w << 0.00011367361999142272115645954414, 0.00026459387119083065532790838855, 0.00041569762526823913616284210066, 0.00056675794564824918946626058353, 0.00071773647800611087798371518325, 0.00086860766611945667949717690640, 0.00101934797642732530281229369360, 0.0011699343729388079886897709773, 0.0013203439900221692090523602144, 0.0014705540427783843160097204304, 0.0016205417990415653896921100325, 0.0017702845706603213070421243905, 0.0019197597117132050055085980675, 0.0020689446195015801533643667413, 0.0022178167367540171700373764020, 0.0023663535543962867157201855305, 0.0025145326145997073931298921370, 0.0026623315139717112732749157331, 0.0028097279068204407457332299361, 0.0029566995084575002760043344138, 0.0031032240985191112621977893133, 0.0032492795242943133198690930777, 0.0033948437040533928255056951665, 0.0035398946303722552150296713510, 0.0036844103734499176530742235517, 0.0038283690844171626400743524999, 0.0039717489986349171988699773906, 0.0041145284389812475901826468094, 0.0042566858191260658425395494472, 0.0043981996467927779838546384780, 0.0045390485270061921259394035112, 0.0046792111653260640506279893190, 0.0048186663710656988918572043815, 0.0049573930604950563104281084148, 0.0050953702600278273039420404117, 0.0052325771093919661294970523234, 0.0053689928647831724787741258653, 0.0055045969020008281904902120813, 0.0056393687195659001929970994675, 0.0057732879418203275712033691864, 0.0059063343220074160130475409466, 0.0060384877453327676663371666884, 0.0061697282320052788060812561217, 0.0063000359402577418025981070425, 0.0064293911693465917826140832500, 0.0065577743625303421548456356354, 0.0066851661100262568757892743568, 0.0068115471519448109954345674817, 0.0069368983812014946719507501243, 0.0070612008464055194979848418291, 0.0071844357547249896530757997058, 0.0073065844747281040972736443146, 0.0074276285391999597581348419714, 0.0075475496479345294426435656724, 0.0076663296705013920315933272426, 0.0077839506489867963897419914623, 0.0079003948007086443529587296692, 0.0080156445209049821352946484008, 0.0081296823853955935356080649925, 0.0082424911532162924158504385939, 0.0083540537692255160718568405530, 0.0084643533666828253227353760036, 0.0085733732697989214067758505840, 0.0086810969962567940901133439612, 0.0087875082597036197689825483144, 0.0088925909722130327769834298578, 0.0089963292467173975949700110383, 0.0090987073994097142025303711406, 0.0091997099521147934060534414075, 0.0092993216346293436285393234867, 0.0093975273870306153500305317074, 0.0094943123619532541442165010292, 0.0095896619268340180657610209655, 0.0096835616661240200035669970076, 0.0097759973834681605268499842249, 0.0098669551038514217128483481814, 0.0099564210757116974565448593910, 0.0100443817730188408231888789497, 0.0101308238973196141129538950955, 0.0102157343797482324629939488415, 0.0102991003830021970147153502911, 0.0103809093032831189224876935085, 0.0104611487722022407735015844669, 0.0105398066586503673262517188088, 0.0106168710706319228563864391054, 0.0106923303570628578226139809571, 0.0107661731095321330311788312990, 0.0108383881640265149842990798832, 0.0109089646026184216450603134401, 0.0109778917551165634377595759712, 0.0110451592006791299277436662993, 0.0111107567693892782875426356195, 0.0111746745437926853557086684962, 0.0112369028603969308303734810332, 0.0112974323111324849102690558722, 0.0113562537447750795009464486204, 0.011413358268329247942299599697, 0.011468737248372824084374355981, 0.011522382312362197440930930031, 0.011574285349898127083439539046, 0.011624438513951922901227922331, 0.011672834222051808845465154244, 0.011719465157429288794653489478, 0.011764324270125341726399410909, 0.011807404778056278953532930501, 0.011848700168039102281222824051, 0.011888204196776208064673282076, 0.011925910891799288293359117699, 0.011961814552372285996633285380, 0.011995909750353268455989686823, 0.012028191331015087920350431142, 0.012058654413824705751531083631, 0.012087294393181062176578184854, 0.012114106939111380091025793650, 0.012139087997925797641334635250, 0.012162233792830230614908682534, 0.012183540824497371981177306326, 0.012203005871595742256331865516, 0.012220625991276710706457005806, 0.012236398519619413758040249691, 0.012250321072033503350218104906, 0.012262391543619664338660618398, 0.012272608109487846445745237751, 0.012280969225033162644659793962, 0.012287473626169412265336919908, 0.012292120329520193516690694701, 0.012294908632567576531532225710, 0.01229583811375831445681490730, 0.012294908632567576531532225710, 0.012292120329520193516690694701, 0.012287473626169412265336919908, 0.012280969225033162644659793962, 0.012272608109487846445745237751, 0.012262391543619664338660618398, 0.012250321072033503350218104906, 0.012236398519619413758040249691, 0.012220625991276710706457005806, 0.012203005871595742256331865516, 0.012183540824497371981177306326, 0.012162233792830230614908682534, 0.012139087997925797641334635250, 0.012114106939111380091025793650, 0.012087294393181062176578184854, 0.012058654413824705751531083631, 0.012028191331015087920350431142, 0.011995909750353268455989686823, 0.011961814552372285996633285380, 0.011925910891799288293359117699, 0.011888204196776208064673282076, 0.011848700168039102281222824051, 0.011807404778056278953532930501, 0.011764324270125341726399410909, 0.011719465157429288794653489478, 0.011672834222051808845465154244, 0.011624438513951922901227922331, 0.011574285349898127083439539046, 0.011522382312362197440930930031, 0.011468737248372824084374355981, 0.011413358268329247942299599697, 0.0113562537447750795009464486204, 0.0112974323111324849102690558722, 0.0112369028603969308303734810332, 0.0111746745437926853557086684962, 0.0111107567693892782875426356195, 0.0110451592006791299277436662993, 0.0109778917551165634377595759712, 0.0109089646026184216450603134401, 0.0108383881640265149842990798832, 0.0107661731095321330311788312990, 0.0106923303570628578226139809571, 0.0106168710706319228563864391054, 0.0105398066586503673262517188088, 0.0104611487722022407735015844669, 0.0103809093032831189224876935085, 0.0102991003830021970147153502911, 0.0102157343797482324629939488415, 0.0101308238973196141129538950955, 0.0100443817730188408231888789497, 0.0099564210757116974565448593910, 0.0098669551038514217128483481814, 0.0097759973834681605268499842249, 0.0096835616661240200035669970076, 0.0095896619268340180657610209655, 0.0094943123619532541442165010292, 0.0093975273870306153500305317074, 0.0092993216346293436285393234867, 0.0091997099521147934060534414075, 0.0090987073994097142025303711406, 0.0089963292467173975949700110383, 0.0088925909722130327769834298578, 0.0087875082597036197689825483144, 0.0086810969962567940901133439612, 0.0085733732697989214067758505840, 0.0084643533666828253227353760036, 0.0083540537692255160718568405530, 0.0082424911532162924158504385939, 0.0081296823853955935356080649925, 0.0080156445209049821352946484008, 0.0079003948007086443529587296692, 0.0077839506489867963897419914623, 0.0076663296705013920315933272426, 0.0075475496479345294426435656724, 0.0074276285391999597581348419714, 0.0073065844747281040972736443146, 0.0071844357547249896530757997058, 0.0070612008464055194979848418291, 0.0069368983812014946719507501243, 0.0068115471519448109954345674817, 0.0066851661100262568757892743568, 0.0065577743625303421548456356354, 0.0064293911693465917826140832500, 0.0063000359402577418025981070425, 0.0061697282320052788060812561217, 0.0060384877453327676663371666884, 0.0059063343220074160130475409466, 0.0057732879418203275712033691864, 0.0056393687195659001929970994675, 0.0055045969020008281904902120813, 0.0053689928647831724787741258653, 0.0052325771093919661294970523234, 0.0050953702600278273039420404117, 0.0049573930604950563104281084148, 0.0048186663710656988918572043815, 0.0046792111653260640506279893190, 0.0045390485270061921259394035112, 0.0043981996467927779838546384780, 0.0042566858191260658425395494472, 0.0041145284389812475901826468094, 0.0039717489986349171988699773906, 0.0038283690844171626400743524999, 0.0036844103734499176530742235517, 0.0035398946303722552150296713510, 0.0033948437040533928255056951665, 0.0032492795242943133198690930777, 0.0031032240985191112621977893133, 0.0029566995084575002760043344138, 0.0028097279068204407457332299361, 0.0026623315139717112732749157331, 0.0025145326145997073931298921370, 0.0023663535543962867157201855305, 0.0022178167367540171700373764020, 0.0020689446195015801533643667413, 0.0019197597117132050055085980675, 0.0017702845706603213070421243905, 0.0016205417990415653896921100325, 0.0014705540427783843160097204304, 0.0013203439900221692090523602144, 0.0011699343729388079886897709773, 0.00101934797642732530281229369360, 0.00086860766611945667949717690640, 0.00071773647800611087798371518325, 0.00056675794564824918946626058353, 0.00041569762526823913616284210066, 0.00026459387119083065532790838855, 0.00011367361999142272115645954414;
        return true;
    }
    case 256 :
    {
        x << -0.999956050018992230734801, -0.999768437409263186104879, -0.999430937466261408240854, -0.998943525843408856555026, -0.998306266473006444055500, -0.997519252756720827563409, -0.996582602023381540430504, -0.995496454481096356592647, -0.994260972922409664962878, -0.992876342608822117143534, -0.991342771207583086922189, -0.989660488745065218319244, -0.987829747564860608916488, -0.985850822286125956479245, -0.983724009760315496166686, -0.981449629025464405769303, -0.979028021257622038824238, -0.976459549719234155621011, -0.973744599704370405266079, -0.970883578480743029320923, -0.967876915228489454909004, -0.964725060975706430932612, -0.961428488530732144006407, -0.957987692411178129365790, -0.954403188769716241764448, -0.950675515316628276363852, -0.946805231239127481372052, -0.942792917117462443183076, -0.938639174837814804981926, -0.934344627502003094292477, -0.929909919334005641180246, -0.925335715583316202872730, -0.920622702425146495505047, -0.915771586857490384526670, -0.910783096595065011890907, -0.905657979960144647082682, -0.900397005770303544771620, -0.895000963223084577441223, -0.889470661777610888828677, -0.883806931033158284859826, -0.878010620604706543986435, -0.872082599995488289130046, -0.866023758466554519297515, -0.859835004903376350696173, -0.853517267679502965073036, -0.847071494517296207187072, -0.840498652345762713895068, -0.833799727155504894348444, -0.826975723850812514289093, -0.820027666098917067403478, -0.812956596176431543136410, -0.805763574812998623257389, -0.798449681032170758782543, -0.791016011989545994546707, -0.783463682808183820750670, -0.775793826411325739132053, -0.768007593352445635975891, -0.760106151642655454941907, -0.752090686575492059587530, -0.743962400549111568455683, -0.735722512885917834620373, -0.727372259649652126586894, -0.718912893459971448372640, -0.710345683304543313394566, -0.701671914348685159406084, -0.692892887742576960105342, -0.684009920426075953124877, -0.675024344931162763855919, -0.665937509182048559906408, -0.656750776292973221887500, -0.647465524363724862617016, -0.638083146272911368668689, -0.628605049469014975432210, -0.619032655759261219430968, -0.609367401096333939522311, -0.599610735362968321730388, -0.589764122154454300785786, -0.579829038559082944921832, -0.569806974936568759057668, -0.559699434694481145136907, -0.549507934062718557042427, -0.539234001866059181127936, -0.528879179294822261951476, -0.518445019673674476221662, -0.507933088228616036231925, -0.497344961852181477119512, -0.486682228866890350103621, -0.475946488786983306390738, -0.465139352078479313645570, -0.454262439917589998774455, -0.443317383947527357216926, -0.432305826033741309953441, -0.421229418017623824976812, -0.410089821468716550006434, -0.398888707435459127713463, -0.387627756194515583637985, -0.376308656998716390283056, -0.364933107823654018533465, -0.353502815112969989537790, -0.342019493522371636480730, -0.330484865662416976229187, -0.318900661840106275631683, -0.307268619799319076258610, -0.295590484460135614563787, -0.283868007657081741799766, -0.272102947876336609505245, -0.260297069991942541978561, -0.248452145001056666833243, -0.236569949758284018477508, -0.224652266709131967147878, -0.212700883622625957937040, -0.200717593323126670068001, -0.188704193421388826461504, -0.176662486044901997403722, -0.164594277567553849829285, -0.152501378338656395374607, -0.140385602411375885913025, -0.128248767270607094742050, -0.116092693560332804940735, -0.103919204810509403639197, -0.091730127163519552031146, -0.079527289100232965903227, -0.067312521165716400242290, -0.055087655694633984104561, -0.042854526536379098381242, -0.030614968779979029366279, -0.018370818478813665117926, -0.006123912375189529501170, 0.006123912375189529501170, 0.018370818478813665117926, 0.030614968779979029366279, 0.042854526536379098381242, 0.055087655694633984104561, 0.067312521165716400242290, 0.079527289100232965903227, 0.091730127163519552031146, 0.103919204810509403639197, 0.116092693560332804940735, 0.128248767270607094742050, 0.140385602411375885913025, 0.152501378338656395374607, 0.164594277567553849829285, 0.176662486044901997403722, 0.188704193421388826461504, 0.200717593323126670068001, 0.212700883622625957937040, 0.224652266709131967147878, 0.236569949758284018477508, 0.248452145001056666833243, 0.260297069991942541978561, 0.272102947876336609505245, 0.283868007657081741799766, 0.295590484460135614563787, 0.307268619799319076258610, 0.318900661840106275631683, 0.330484865662416976229187, 0.342019493522371636480730, 0.353502815112969989537790, 0.364933107823654018533465, 0.376308656998716390283056, 0.387627756194515583637985, 0.398888707435459127713463, 0.410089821468716550006434, 0.421229418017623824976812, 0.432305826033741309953441, 0.443317383947527357216926, 0.454262439917589998774455, 0.465139352078479313645570, 0.475946488786983306390738, 0.486682228866890350103621, 0.497344961852181477119512, 0.507933088228616036231925, 0.518445019673674476221662, 0.528879179294822261951476, 0.539234001866059181127936, 0.549507934062718557042427, 0.559699434694481145136907, 0.569806974936568759057668, 0.579829038559082944921832, 0.589764122154454300785786, 0.599610735362968321730388, 0.609367401096333939522311, 0.619032655759261219430968, 0.628605049469014975432210, 0.638083146272911368668689, 0.647465524363724862617016, 0.656750776292973221887500, 0.665937509182048559906408, 0.675024344931162763855919, 0.684009920426075953124877, 0.692892887742576960105342, 0.701671914348685159406084, 0.710345683304543313394566, 0.718912893459971448372640, 0.727372259649652126586894, 0.735722512885917834620373, 0.743962400549111568455683, 0.752090686575492059587530, 0.760106151642655454941907, 0.768007593352445635975891, 0.775793826411325739132053, 0.783463682808183820750670, 0.791016011989545994546707, 0.798449681032170758782543, 0.805763574812998623257389, 0.812956596176431543136410, 0.820027666098917067403478, 0.826975723850812514289093, 0.833799727155504894348444, 0.840498652345762713895068, 0.847071494517296207187072, 0.853517267679502965073036, 0.859835004903376350696173, 0.866023758466554519297515, 0.872082599995488289130046, 0.878010620604706543986435, 0.883806931033158284859826, 0.889470661777610888828677, 0.895000963223084577441223, 0.900397005770303544771620, 0.905657979960144647082682, 0.910783096595065011890907, 0.915771586857490384526670, 0.920622702425146495505047, 0.925335715583316202872730, 0.929909919334005641180246, 0.934344627502003094292477, 0.938639174837814804981926, 0.942792917117462443183076, 0.946805231239127481372052, 0.950675515316628276363852, 0.954403188769716241764448, 0.957987692411178129365790, 0.961428488530732144006407, 0.964725060975706430932612, 0.967876915228489454909004, 0.970883578480743029320923, 0.973744599704370405266079, 0.976459549719234155621011, 0.979028021257622038824238, 0.981449629025464405769303, 0.983724009760315496166686, 0.985850822286125956479245, 0.987829747564860608916488, 0.989660488745065218319244, 0.991342771207583086922189, 0.992876342608822117143534, 0.994260972922409664962878, 0.995496454481096356592647, 0.996582602023381540430504, 0.997519252756720827563409, 0.998306266473006444055500, 0.998943525843408856555026, 0.999430937466261408240854, 0.999768437409263186104879, 0.999956050018992230734801;

        w << 0.00011278901782227217551253887725, 0.00026253494429644590628745756250, 0.00041246325442617632843218583774, 0.00056234895403140980281523674759, 0.0007121541634733206669089891511, 0.0008618537014200890378140934163, 0.0010114243932084404526058128414, 0.0011608435575677247239705981135, 0.0013100886819025044578316804271, 0.0014591373333107332010883864996, 0.0016079671307493272424499395690, 0.0017565557363307299936069145295, 0.0019048808534997184044191411746, 0.0020529202279661431745487818492, 0.0022006516498399104996848834189, 0.0023480529563273120170064609087, 0.0024951020347037068508395354372, 0.0026417768254274905641208292516, 0.0027880553253277068805747610763, 0.0029339155908297166460123254142, 0.0030793357411993375832053528316, 0.0032242939617941981570107134269, 0.0033687685073155510120191062489, 0.0035127377050563073309710549844, 0.0036561799581425021693892413052, 0.0037990737487662579981170192082, 0.0039413976414088336277290349840, 0.0040831302860526684085997759212, 0.0042242504213815362723565049060, 0.0043647368779680566815684200621, 0.0045045685814478970686417923159, 0.0046437245556800603139790923525, 0.0047821839258926913729317340448, 0.0049199259218138656695587765655, 0.0050569298807868423875578160762, 0.0051931752508692809303287536296, 0.0053286415939159303170811114788, 0.0054633085886443102775705318566, 0.0055971560336829100775514452572, 0.005730163850601437177384417555, 0.005862312086922653060661598801, 0.005993580919115338221127696870, 0.006123950655567932542389081187, 0.006253401739542401272063645975, 0.006381914752107880570375164275, 0.006509470415053660267809899951, 0.006636049593781065044590038355, 0.006761633300173798780927861108, 0.006886202695446320346713323775, 0.007009739092969822621234436194, 0.007132223961075390071672422986, 0.007253638925833913783829137214, 0.007373965773812346437572440695, 0.007493186454805883358599761133, 0.007611283084545659461618719618, 0.007728237947381555631110194958, 0.007844033498939711866810316151, 0.007958652368754348353613161227, 0.008072077362873499500946974804, 0.008184291466438269935619761004, 0.008295277846235225425171412553, 0.008405019853221535756180301698, 0.008513501025022490693838354790, 0.008620705088401014305368838410, 0.008726615961698807140336632217, 0.008831217757248750025318272685, 0.008934494783758207548408417085, 0.009036431548662873680227775572, 0.009137012760450806402000472219, 0.009236223330956302687378716714, 0.009334048377623269712466014486, 0.009430473225737752747352764482, 0.009525483410629284811829685754, 0.009619064679840727857162164401, 0.009711202995266279964249670496, 0.009801884535257327825498800250, 0.009891095696695828602630683809, 0.009978823097034910124733949495, 0.010065053576306383309460978930, 0.010149774199094865654634066042, 0.010232972256478219656954857160, 0.010314635267934015068260713997, 0.010394750983211728997101725205, 0.010473307384170403003569566927, 0.010550292686581481517533575536, 0.010625695341896561133961681801, 0.010699504038979785603048200583, 0.010771707705804626636653631927, 0.010842295511114795995293477058, 0.010911256866049039700796847788, 0.010978581425729570637988203448, 0.011044259090813901263517571044, 0.011108280009009843630460815451, 0.011170634576553449462710881938, 0.011231313439649668572656802083, 0.011290307495875509508367594121, 0.011347607895545491941625714297, 0.011403206043039185964847059552, 0.011457093598090639152334392298, 0.011509262477039497958586392439, 0.011559704854043635772668656950, 0.011608413162253105722084706677, 0.011655380094945242121298939730, 0.011700598606620740288189823359, 0.011744061914060550305376732759, 0.011785763497343426181690117627, 0.011825697100823977771160737958, 0.011863856734071078731904572908, 0.011900236672766489754287204237, 0.011934831459563562255873201696, 0.011967635904905893729007282670, 0.011998645087805811934536710071, 0.012027854356582571161267533498, 0.012055259329560149814347085327, 0.012080855895724544655975183976, 0.012104640215340463097757829736, 0.012126608720527321034718492205, 0.012146758115794459815559837664, 0.012165085378535502061307291839, 0.012181587759481772174047585032, 0.012196262783114713518180974196, 0.012209108248037240407514094371, 0.012220122227303969191708737227, 0.012229303068710278904146266083, 0.012236649395040158109242574767, 0.012242160104272800769728083260, 0.012245834369747920142463857550, 0.01224767164028975590407032649, 0.01224767164028975590407032649, 0.012245834369747920142463857550, 0.012242160104272800769728083260, 0.012236649395040158109242574767, 0.012229303068710278904146266083, 0.012220122227303969191708737227, 0.012209108248037240407514094371, 0.012196262783114713518180974196, 0.012181587759481772174047585032, 0.012165085378535502061307291839, 0.012146758115794459815559837664, 0.012126608720527321034718492205, 0.012104640215340463097757829736, 0.012080855895724544655975183976, 0.012055259329560149814347085327, 0.012027854356582571161267533498, 0.011998645087805811934536710071, 0.011967635904905893729007282670, 0.011934831459563562255873201696, 0.011900236672766489754287204237, 0.011863856734071078731904572908, 0.011825697100823977771160737958, 0.011785763497343426181690117627, 0.011744061914060550305376732759, 0.011700598606620740288189823359, 0.011655380094945242121298939730, 0.011608413162253105722084706677, 0.011559704854043635772668656950, 0.011509262477039497958586392439, 0.011457093598090639152334392298, 0.011403206043039185964847059552, 0.011347607895545491941625714297, 0.011290307495875509508367594121, 0.011231313439649668572656802083, 0.011170634576553449462710881938, 0.011108280009009843630460815451, 0.011044259090813901263517571044, 0.010978581425729570637988203448, 0.010911256866049039700796847788, 0.010842295511114795995293477058, 0.010771707705804626636653631927, 0.010699504038979785603048200583, 0.010625695341896561133961681801, 0.010550292686581481517533575536, 0.010473307384170403003569566927, 0.010394750983211728997101725205, 0.010314635267934015068260713997, 0.010232972256478219656954857160, 0.010149774199094865654634066042, 0.010065053576306383309460978930, 0.009978823097034910124733949495, 0.009891095696695828602630683809, 0.009801884535257327825498800250, 0.009711202995266279964249670496, 0.009619064679840727857162164401, 0.009525483410629284811829685754, 0.009430473225737752747352764482, 0.009334048377623269712466014486, 0.009236223330956302687378716714, 0.009137012760450806402000472219, 0.009036431548662873680227775572, 0.008934494783758207548408417085, 0.008831217757248750025318272685, 0.008726615961698807140336632217, 0.008620705088401014305368838410, 0.008513501025022490693838354790, 0.008405019853221535756180301698, 0.008295277846235225425171412553, 0.008184291466438269935619761004, 0.008072077362873499500946974804, 0.007958652368754348353613161227, 0.007844033498939711866810316151, 0.007728237947381555631110194958, 0.007611283084545659461618719618, 0.007493186454805883358599761133, 0.007373965773812346437572440695, 0.007253638925833913783829137214, 0.007132223961075390071672422986, 0.007009739092969822621234436194, 0.006886202695446320346713323775, 0.006761633300173798780927861108, 0.006636049593781065044590038355, 0.006509470415053660267809899951, 0.006381914752107880570375164275, 0.006253401739542401272063645975, 0.006123950655567932542389081187, 0.005993580919115338221127696870, 0.005862312086922653060661598801, 0.005730163850601437177384417555, 0.0055971560336829100775514452572, 0.0054633085886443102775705318566, 0.0053286415939159303170811114788, 0.0051931752508692809303287536296, 0.0050569298807868423875578160762, 0.0049199259218138656695587765655, 0.0047821839258926913729317340448, 0.0046437245556800603139790923525, 0.0045045685814478970686417923159, 0.0043647368779680566815684200621, 0.0042242504213815362723565049060, 0.0040831302860526684085997759212, 0.0039413976414088336277290349840, 0.0037990737487662579981170192082, 0.0036561799581425021693892413052, 0.0035127377050563073309710549844, 0.0033687685073155510120191062489, 0.0032242939617941981570107134269, 0.0030793357411993375832053528316, 0.0029339155908297166460123254142, 0.0027880553253277068805747610763, 0.0026417768254274905641208292516, 0.0024951020347037068508395354372, 0.0023480529563273120170064609087, 0.0022006516498399104996848834189, 0.0020529202279661431745487818492, 0.0019048808534997184044191411746, 0.0017565557363307299936069145295, 0.0016079671307493272424499395690, 0.0014591373333107332010883864996, 0.0013100886819025044578316804271, 0.0011608435575677247239705981135, 0.0010114243932084404526058128414, 0.0008618537014200890378140934163, 0.0007121541634733206669089891511, 0.00056234895403140980281523674759, 0.00041246325442617632843218583774, 0.00026253494429644590628745756250, 0.00011278901782227217551253887725;
        return true;
    }
    case 257 :
    {
        x << -0.999956390712330402472857, -0.999770232390338019056053, -0.999435348366365078441838, -0.998951714093223210129834, -0.998319392445383847808766, -0.997538475365520218731818, -0.996609078365487004512326, -0.995531339486830143483750, -0.994305419008553630362377, -0.992931499332908653172844, -0.991409784923101705201254, -0.989740502257507526030375, -0.987923899788618253106809, -0.985960247902290665366669, -0.983849838875444644048531, -0.981592986831381877693095, -0.979190027692327124191591, -0.976641319128992592610888, -0.973947240507062326750976, -0.971108192830542793021113, -0.968124598681952354372943, -0.964996902159337170373447, -0.961725568810109767190665, -0.958311085561711847074814, -0.954753960649106318830855, -0.951054723539105826691801, -0.947213924851546682950881, -0.943232136277318328151464, -0.939109950493259404355123, -0.934847981073932324370129, -0.930446862400288909805510, -0.925907249565240289235888, -0.921229818276144817520964, -0.916415264754228313295468, -0.911464305630951423630955, -0.906377677841339419411308, -0.901156138514290206476301, -0.895800464859876809085345, -0.890311454053661045810287, -0.884689923118035575018750, -0.878936708800611938658765, -0.873052667449672679799858, -0.867038674886706051812473, -0.860895626276042275514686, -0.854624435991610735314055, -0.848226037480837936478636, -0.841701383125706473284556, -0.835051444100995681967937, -0.828277210229725073186687, -0.821379689835822056081139, -0.814359909594035880004229, -0.807218914377120130552073, -0.799957767100306523636066, -0.792577548563093144962574, -0.785079357288370682385816, -0.777464309358910595129671, -0.769733538251239556788216, -0.761888194666924898264210, -0.753929446361296162339238, -0.745858477969628263337895, -0.737676490830812123299244, -0.729384702808539030149808, -0.720984348110025333531072, -0.712476677102304460118510, -0.703862956126113592426171, -0.695144467307402713168813, -0.686322508366494071200553, -0.677398392424920474813593, -0.668373447809971163711735, -0.659249017856974352220492, -0.650026460709345873208532, -0.640707149116433684724434, -0.631292470229188329449219, -0.621783825393689760680446, -0.612182629942561267650033, -0.602490312984301547488097, -0.592708317190566281032495, -0.582838098581430874902446, -0.572881126308666332759406, -0.562838882437060514424546, -0.552712861723817332466074, -0.542504571396066721967792, -0.532215530926518500400434, -0.521847271807293510797499, -0.511401337321965712746629, -0.500879282315849152005553, -0.490282672964564000798817, -0.479613086540916117008992, -0.468872111180124821505728, -0.458061345643433838720630, -0.447182399080140586238810, -0.436236890788079234603398, -0.425226449972593188682213, -0.414152715504032866791986, -0.403017335673814873281489, -0.391821967949078874408131, -0.380568278725978696070941, -0.369257943081644365255611, -0.357892644524852014873858, -0.346474074745438764010632, -0.335003933362499872399782, -0.323483927671405649204085, -0.311915772389675771851948, -0.300301189401748840754520, -0.288641907502685160168097, -0.276939662140840894253032, -0.265196195159551900488370, -0.253413254537865690008131, -0.241592594130360106108882, -0.229735973406087448117604, -0.217845157186682897983880, -0.205921915383676231351599, -0.193968022735045913454182, -0.181985258541054792946197, -0.169975406399406713716337, -0.157940253939763465806087, -0.145881592557661591770148, -0.133801217147868654144405, -0.121700925837218653121859, -0.109582519716966361063898, -0.097447802574700412082119, -0.085298580625855050603929, -0.073136662244860502573600, -0.060963857695971986730406, -0.048781978863817431238958, -0.036592838983704002816750, -0.024398252371723591403953, -0.012200034154697423345412, 0.000000000000000000000000, 0.012200034154697423345412, 0.024398252371723591403953, 0.036592838983704002816750, 0.048781978863817431238958, 0.060963857695971986730406, 0.073136662244860502573600, 0.085298580625855050603929, 0.097447802574700412082119, 0.109582519716966361063898, 0.121700925837218653121859, 0.133801217147868654144405, 0.145881592557661591770148, 0.157940253939763465806087, 0.169975406399406713716337, 0.181985258541054792946197, 0.193968022735045913454182, 0.205921915383676231351599, 0.217845157186682897983880, 0.229735973406087448117604, 0.241592594130360106108882, 0.253413254537865690008131, 0.265196195159551900488370, 0.276939662140840894253032, 0.288641907502685160168097, 0.300301189401748840754520, 0.311915772389675771851948, 0.323483927671405649204085, 0.335003933362499872399782, 0.346474074745438764010632, 0.357892644524852014873858, 0.369257943081644365255611, 0.380568278725978696070941, 0.391821967949078874408131, 0.403017335673814873281489, 0.414152715504032866791986, 0.425226449972593188682213, 0.436236890788079234603398, 0.447182399080140586238810, 0.458061345643433838720630, 0.468872111180124821505728, 0.479613086540916117008992, 0.490282672964564000798817, 0.500879282315849152005553, 0.511401337321965712746629, 0.521847271807293510797499, 0.532215530926518500400434, 0.542504571396066721967792, 0.552712861723817332466074, 0.562838882437060514424546, 0.572881126308666332759406, 0.582838098581430874902446, 0.592708317190566281032495, 0.602490312984301547488097, 0.612182629942561267650033, 0.621783825393689760680446, 0.631292470229188329449219, 0.640707149116433684724434, 0.650026460709345873208532, 0.659249017856974352220492, 0.668373447809971163711735, 0.677398392424920474813593, 0.686322508366494071200553, 0.695144467307402713168813, 0.703862956126113592426171, 0.712476677102304460118510, 0.720984348110025333531072, 0.729384702808539030149808, 0.737676490830812123299244, 0.745858477969628263337895, 0.753929446361296162339238, 0.761888194666924898264210, 0.769733538251239556788216, 0.777464309358910595129671, 0.785079357288370682385816, 0.792577548563093144962574, 0.799957767100306523636066, 0.807218914377120130552073, 0.814359909594035880004229, 0.821379689835822056081139, 0.828277210229725073186687, 0.835051444100995681967937, 0.841701383125706473284556, 0.848226037480837936478636, 0.854624435991610735314055, 0.860895626276042275514686, 0.867038674886706051812473, 0.873052667449672679799858, 0.878936708800611938658765, 0.884689923118035575018750, 0.890311454053661045810287, 0.895800464859876809085345, 0.901156138514290206476301, 0.906377677841339419411308, 0.911464305630951423630955, 0.916415264754228313295468, 0.921229818276144817520964, 0.925907249565240289235888, 0.930446862400288909805510, 0.934847981073932324370129, 0.939109950493259404355123, 0.943232136277318328151464, 0.947213924851546682950881, 0.951054723539105826691801, 0.954753960649106318830855, 0.958311085561711847074814, 0.961725568810109767190665, 0.964996902159337170373447, 0.968124598681952354372943, 0.971108192830542793021113, 0.973947240507062326750976, 0.976641319128992592610888, 0.979190027692327124191591, 0.981592986831381877693095, 0.983849838875444644048531, 0.985960247902290665366669, 0.987923899788618253106809, 0.989740502257507526030375, 0.991409784923101705201254, 0.992931499332908653172844, 0.994305419008553630362377, 0.995531339486830143483750, 0.996609078365487004512326, 0.997538475365520218731818, 0.998319392445383847808766, 0.998951714093223210129834, 0.999435348366365078441838, 0.999770232390338019056053, 0.999956390712330402472857;

        w << 0.00011191470145601756450862287886, 0.00026049995580176964436806680831, 0.00040926648283531339591138751432, 0.00055799120546880640169677292533, 0.00070663671051592291949335494247, 0.00085517818446696565626595950963, 0.00100359280467969441299468763292, 0.0011518582377826677880963146741, 0.0012999523174235227389668643832, 0.0014478529559255120065233994722, 0.0015955381166175133369701690235, 0.0017429858051468299509941139300, 0.0018901740676190104269878470891, 0.0020370809914723626741694800322, 0.0021836847075455253317921866057, 0.0023299633927021828561308282641, 0.0024758952727301488651840215879, 0.0026214586253808109266552781372, 0.0027666317834818283552560256501, 0.0029113931380877846359302447381, 0.0030557211416493711130936102459, 0.0031995943111899437356540290142, 0.0033429912314827618499065991316, 0.0034858905582247143702551557840, 0.0036282710212037760873102463983, 0.0037701114274582873548537007645, 0.0039113906644266662571543468015, 0.0040520877030864825223229951262, 0.0041921816010820254766367595011, 0.0043316515058396297504806208252, 0.0044704766576701092218388764046, 0.0046086363928577081326523656522, 0.0047461101467350184936945641585, 0.0048828774567433411142588306018, 0.0050189179654779878773297516544, 0.0051542114237180378340642003713, 0.0052887376934400710240953933529, 0.0054224767508154127788846727083, 0.0055554086891904284012033890901, 0.0056875137220494140577838938236, 0.0058187721859596348346566361185, 0.0059491645434980654366600347567, 0.0060786713861593931405204596709, 0.0062072734372448464599330978665, 0.0063349515547314166407936938524, 0.0064616867341210426397202932350, 0.0065874601112693336961737372300, 0.0067122529651934070221351960200, 0.0068360467208584215286561508406, 0.0069588229519423919043121805236, 0.0070805633835788707705149901066, 0.0072012498950770900730828552207, 0.0073208645226191563361371026044, 0.0074393894619338979090297315972, 0.0075568070709469658838993300454, 0.0076730998724067939537782250476, 0.0077882505564860261212726654404, 0.0079022419833580248574070864277, 0.0080150571857480760504667455353, 0.0081266793714589108764118189068, 0.0082370919258701685661946145361, 0.0083462784144114279413811886655, 0.0084542225850084395379670551258, 0.0085609083705021941391459209280, 0.0086663198910404675908861979240, 0.0087704414564414858792445834744, 0.0088732575685293586050755892934, 0.0089747529234409331997949023068, 0.0090749124139037264846862498962, 0.0091737211314845944854270065178, 0.0092711643688088057725325917169, 0.0093672276217491880067391857021, 0.0094618965915850218253881576301, 0.0095551571871303607110514249099, 0.0096469955268314600363329731559, 0.0097373979408330030783691793250, 0.0098263509730128164423854701706, 0.0099138413829847720250916955489, 0.0099998561480695773850435626986, 0.0100843824652331611676814627839, 0.0101674077529923650568895461852, 0.0102489196532876585918958554047, 0.0103289060333225980974485876288, 0.0104073549873697559257355517893, 0.0104842548385428511997370260353, 0.0105595941405348182788823332058, 0.0106333616793215542382761147904, 0.0107055464748310917616231511294, 0.0107761377825779489945556541150, 0.0108451250952624130885928632830, 0.0109124981443345193856719616965, 0.0109782469015224934483083029166, 0.0110423615803254284301924654946, 0.0111048326374699756056269264803, 0.0111656507743308312328559850485, 0.0112248069383148083152535688671, 0.0112822923242082872447042603128, 0.0113380983754878447625379269120, 0.011392216785593866154247619654, 0.011444639499166951104119199270, 0.011495358713246929174010288914, 0.011544366878434306436012137033, 0.011591656700013970380783131035, 0.011637221139040985841125311445, 0.011681053413388320313049670635, 0.011723146998756342723302879656, 0.011763495629643945382264331878, 0.011802093300281144573421477037, 0.011838934265523020964443424791, 0.011874013041704866779344562066, 0.011907324407458412445505183140, 0.011938863404489011222535627643, 0.011968625338313666131272065445, 0.011996605778959789329711050159, 0.012022800561624589927558893338, 0.012047205787294992091420946532, 0.012069817823327991167612855626, 0.012090633303991361438266420912, 0.012109649130964635027950450318, 0.012126862473800277391553601370, 0.012142270770344990738801546574, 0.012155871727121082685623083829, 0.012167663319667843366755737416, 0.012177643792842880196606249581, 0.012185811661083365425569178819, 0.012192165708627157605870499188, 0.012196704989693764053654538465, 0.012199428828625117371582840212, 0.01220033681998614507777289232, 0.012199428828625117371582840212, 0.012196704989693764053654538465, 0.012192165708627157605870499188, 0.012185811661083365425569178819, 0.012177643792842880196606249581, 0.012167663319667843366755737416, 0.012155871727121082685623083829, 0.012142270770344990738801546574, 0.012126862473800277391553601370, 0.012109649130964635027950450318, 0.012090633303991361438266420912, 0.012069817823327991167612855626, 0.012047205787294992091420946532, 0.012022800561624589927558893338, 0.011996605778959789329711050159, 0.011968625338313666131272065445, 0.011938863404489011222535627643, 0.011907324407458412445505183140, 0.011874013041704866779344562066, 0.011838934265523020964443424791, 0.011802093300281144573421477037, 0.011763495629643945382264331878, 0.011723146998756342723302879656, 0.011681053413388320313049670635, 0.011637221139040985841125311445, 0.011591656700013970380783131035, 0.011544366878434306436012137033, 0.011495358713246929174010288914, 0.011444639499166951104119199270, 0.011392216785593866154247619654, 0.0113380983754878447625379269120, 0.0112822923242082872447042603128, 0.0112248069383148083152535688671, 0.0111656507743308312328559850485, 0.0111048326374699756056269264803, 0.0110423615803254284301924654946, 0.0109782469015224934483083029166, 0.0109124981443345193856719616965, 0.0108451250952624130885928632830, 0.0107761377825779489945556541150, 0.0107055464748310917616231511294, 0.0106333616793215542382761147904, 0.0105595941405348182788823332058, 0.0104842548385428511997370260353, 0.0104073549873697559257355517893, 0.0103289060333225980974485876288, 0.0102489196532876585918958554047, 0.0101674077529923650568895461852, 0.0100843824652331611676814627839, 0.0099998561480695773850435626986, 0.0099138413829847720250916955489, 0.0098263509730128164423854701706, 0.0097373979408330030783691793250, 0.0096469955268314600363329731559, 0.0095551571871303607110514249099, 0.0094618965915850218253881576301, 0.0093672276217491880067391857021, 0.0092711643688088057725325917169, 0.0091737211314845944854270065178, 0.0090749124139037264846862498962, 0.0089747529234409331997949023068, 0.0088732575685293586050755892934, 0.0087704414564414858792445834744, 0.0086663198910404675908861979240, 0.0085609083705021941391459209280, 0.0084542225850084395379670551258, 0.0083462784144114279413811886655, 0.0082370919258701685661946145361, 0.0081266793714589108764118189068, 0.0080150571857480760504667455353, 0.0079022419833580248574070864277, 0.0077882505564860261212726654404, 0.0076730998724067939537782250476, 0.0075568070709469658838993300454, 0.0074393894619338979090297315972, 0.0073208645226191563361371026044, 0.0072012498950770900730828552207, 0.0070805633835788707705149901066, 0.0069588229519423919043121805236, 0.0068360467208584215286561508406, 0.0067122529651934070221351960200, 0.0065874601112693336961737372300, 0.0064616867341210426397202932350, 0.0063349515547314166407936938524, 0.0062072734372448464599330978665, 0.0060786713861593931405204596709, 0.0059491645434980654366600347567, 0.0058187721859596348346566361185, 0.0056875137220494140577838938236, 0.0055554086891904284012033890901, 0.0054224767508154127788846727083, 0.0052887376934400710240953933529, 0.0051542114237180378340642003713, 0.0050189179654779878773297516544, 0.0048828774567433411142588306018, 0.0047461101467350184936945641585, 0.0046086363928577081326523656522, 0.0044704766576701092218388764046, 0.0043316515058396297504806208252, 0.0041921816010820254766367595011, 0.0040520877030864825223229951262, 0.0039113906644266662571543468015, 0.0037701114274582873548537007645, 0.0036282710212037760873102463983, 0.0034858905582247143702551557840, 0.0033429912314827618499065991316, 0.0031995943111899437356540290142, 0.0030557211416493711130936102459, 0.0029113931380877846359302447381, 0.0027666317834818283552560256501, 0.0026214586253808109266552781372, 0.0024758952727301488651840215879, 0.0023299633927021828561308282641, 0.0021836847075455253317921866057, 0.0020370809914723626741694800322, 0.0018901740676190104269878470891, 0.0017429858051468299509941139300, 0.0015955381166175133369701690235, 0.0014478529559255120065233994722, 0.0012999523174235227389668643832, 0.0011518582377826677880963146741, 0.00100359280467969441299468763292, 0.00085517818446696565626595950963, 0.00070663671051592291949335494247, 0.00055799120546880640169677292533, 0.00040926648283531339591138751432, 0.00026049995580176964436806680831, 0.00011191470145601756450862287886;
        return true;
    }
// */
#endif
    default:
    {
        //gsWarn << "  Illegal value of N = " << n << "\n";
        gsWarn << "Precomputed Gauss rule (1,..,33,63,64,65,127,128,129,255,256,257) not found.\n";
        return false;
    }

    }//switch

}// lookupReference

} // namespace gismo
